對於很多新學shell指令碼程式的人來書說,空格跟$符號的使用一直讓人迷迷糊糊,下面我來說說有關於它們的使用情況。
1.定義變數時, =號的兩邊不可以留空格.
eg:
gender=femal————right
gender =femal———–wrong
gender= femal———–wrong
2.條件測試語句 [ 符號的兩邊都要留空格.
eg:
if [ $gender = femal ]; then——-right.
echo 「you are femal」;
fiif[ $gender...-----------------------wrong
if [$gender...----------------------wrong.
3.條件測試的內容,如果是字串比較的話, 比較符號兩邊要留空格!
eg:
if [ $gender = femal ]; then——-right.
if [ $gender= femal ]; then——–wrong.
if [ $gender=femal ]; then———wrong.
4.如果if 和 then寫在同一行, 那麼,注意, then的前面要跟上 ; 號.如果 then 換行寫, 那麼也沒問題.
eg:
if [ $gender = femal ]; then——-right.
if [ $gender = femal ]
then——————————-right.
if [ $gender = femal ] then——-wrong. then前面少了 ; 號.
提示出錯資訊:
syntax error near unexpected token then
同理,還有很多出錯資訊 比如
syntax error near unexpected token fi 等都是這樣引起的.
5.if 後面一定要跟上 then. 同理
elif 後面一定要跟上 then.
不然提示出錯資訊:
syntax error near unexpected token else
1)if 語句後面需要跟著then,同時前面要有分號;
2) 空格非常重要,shell 會認為空格前的為乙個命令,如果a=3 認為是賦值操作,如果寫成a = 3,那麼就會認為a為乙個命令 this=`ls -l |grep 『^-' | wc -l `
3) 操作符之間要用空格分開 ,如 test ! -d $1,其中的!和-d就要用空格分開
空格是命令解析中的重要分隔符
6. 命令和其後的引數或物件之間一定要有空格
if [ -x"~/workspace/shell/a.sh" ];then
只有 -x 後有空格才表示緊跟其後的字串是否指向乙個可執行的檔名,否則就成了測試 -x"~/workspace/shell/a.sh" 這個字串是不是空。
7.取變數值的符號'$'和後邊的變數或括號不能有空格
shell 指令碼中 中空格的說明
shell指令碼對空格有嚴格的規定,賦值語句等號兩邊不能有空格,而字串比較,等號兩邊必須有空格 賦值時 i 1 i i 1 用作賦值時,兩邊絕對不能有空格比較時 if a b 用作比較判斷時,兩邊必須有空格除此以外的注意點就是 a b 後面要有空格,前面要有個 if if if commands t...
HTML中的空格符號
html中的空格 不斷行的空白 1個字元寬度 半個空白 1個字元寬度 乙個空白 2個字元寬度 窄空白 小於1個字元寬度 css中的空格 css中當 white space 屬性取值為pre時,瀏覽器會保留文字中的空格和換行,例如 aa bb 顯示效果為 aa bb css的 letter spaci...
shell指令碼的空格
基本語法 shell的if語法和c語言等高階語言非常相似,唯一需要注意的地方就是shell的if語句對空格方面的要求比較嚴格 其實shell對所有語法的空格使用都比較嚴格 如果在需要空格的地方沒有打上空格,都會報錯。如if 1x ip x then echo abc fi中少乙個空格都會報錯。另外s...