本文轉載自【微信公眾號:羽林君,ID:Conscience_Remains】經微信公眾號授權轉載,如需轉載與原文作者聯繫
shell echo
Shell echo命令
Shell 的 echo 指令與 PHP 的 echo 指令類似,都是用於字符串的輸出。命令格式:
echo string
您可以使用echo實現更複雜的輸出格式控制。
1.顯示普通字符串:
echo "It is a test"
//這裡的雙引號完全可以省略,以下命令與上面實例效果一致
echo It is a test
2.顯示轉義字符
echo "\"It is a test\""
結果將是:
同樣,雙引號也可以省略
3.顯示變量
read 命令從標準輸入中讀取一行,並把輸入行的每個欄位的值指定給 shell 變量
read
name
echo "$name It is a test"
以上代碼保存為hello_shell.sh,name 接收標準輸入的變量,結果將是:
4.顯示換行
echo -e "OK! \n" # -e 開啟轉義
輸出結果:
5.顯示不換行
echo -e "OK! \c" # -e 開啟轉義 \c 不換行
6.顯示結果定向至文件
echo "It is a test" > lynfile
./hello_shell.sh 執行腳本,當前目錄下就會生成一個 lynfile 文件,裡面的內容為It is a test
7.原樣輸出字符串,不進行轉義或取變量(用單引號)
echo '$name\"'
8.顯示命令執行結果
echo `date`
注意: 這裡使用的是反引號 `, 而不是單引號 '。
結果將顯示當前日期
shell printf
Shell printf 命令
我們學習了 Shell 的 echo 命令,我們再來學習 Shell 的另一個輸出命令 printf。
printf 命令模仿 C 程序庫(library)裡的 printf() 程序。
printf 由 POSIX 標準所定義,因此使用 printf 的腳本比使用 echo 移植性好。
printf 使用引用文本或空格分隔的參數,外面可以在 printf 中使用格式化字符串,還可以制定字符串的寬度、左右對齊方式等。默認 printf 不會像 echo 自動添加換行符,我們可以手動添加 \n。
printf 命令的語法:
printf format-string [arguments...]
參數說明:
format-string: 為格式控制字符串arguments: 為參數列表。實例如下:
echo "echo Hello, Shell" lyn, action
printf "printf Hello, Shell\n" lyn, action
接下來,我來用一個腳本來體現printf的強大功能:
printf "%-10s %-8s %-4s\n" 姓名 性別 體重kg
printf "%-10s %-8s %-4.2f\n" 張三 男 66.1234
printf "%-10s %-8s %-4.2f\n" 李四 男 48.6543
printf "%-10s %-8s %-4.2f\n" 王五 女 47.9876
執行腳本,輸出結果如下所示:
更多實例:
# format-string為雙引號
printf "%d %s\n" 1 "abc" # 單引號與雙引號效果一樣
printf '%d %s\n' 1 "abc"
# 沒有引號也可以輸出
printf %s abcdef
printf "\n"
# 格式只指定了一個參數,但多出的參數仍然會按照該格式輸出,format-string 被重用
printf "%s\n" abc def
printf "%s %s %s\n" a b c d e f g h i j
# 如果沒有 arguments,那麼 %s 用NULL代替,%d 用 0 代替
printf "%s and %d \n"
printf的轉義序列
實例
printf "a string, no processing:<%s>\n" "A\nB"
printf "a string, no processing:<%b>\n" "A\nB"
printf "www.baidu.com \a"
輸出結果為:
shell 文件包含
Shell 文件包含
和其他語言一樣,Shell 也可以包含外部腳本。這樣可以很方便的封裝一些公用的代碼作為一個獨立的文件。
Shell 文件包含的語法格式如下:
. filename # 注意點號(.)和文件名中間有一空格
或
source filename
創建兩個 shell 腳本文件。
url.sh 代碼如下:
#!/bin/bash
url="http://www.baidu.com"
url_read.sh 代碼如下:
#使用 . 號來引用url.sh 文件
#. ./url.sh
# 或者使用以下包含文件代碼
source ./url.sh
echo "官網地址:$url"
接下來,我們為 url_read.sh 添加可執行權限並執行:
註:被包含的文件 url.sh 不需要可執行權限。
這就是我分享的shell腳本,其中參考了很多人的文章,如果大家有什麼更好的思路,也歡迎分享交流哈。