Shell shell指令碼中的空格

2021-08-28 23:42:44 字數 1777 閱讀 3161

1.定義變數時, =號的兩邊不可以留空格.

eg:

gender=femal————right

gender =femal———–wrong

gender= femal———–wrong

gender= test————right 左邊是命令的話=號的右邊有空格是正確的=左邊不能有空格

gender = test ———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指令碼執行

shell指令碼執行的方法有一下幾種 一.shellname.sh 二source shellname.sh 三chmod x shellname.sh shellname.sh 四sh shellname.sh區別和相同點 他們的相同點是都可以成功執行乙個shell指令碼。而不同點有 第一種方法 ...

shell shell指令碼實戰 for迴圈

總結前言 迴圈語句常用於重複執行一條命令或一組命令等,直到達到結束條件後,則終止執行。在shell中常見的迴圈命令有while until for和select等 今天我們來 第乙個迴圈語句,for迴圈。for迴圈介紹 for迴圈語句與while迴圈語句類似,但for迴圈語句主要用於有限次的迴圈場景...

Shell Shell 指令碼中字串的相關操作

在我們的shell 程式設計中,乙個必不可少的操作就是針對於字串的操作,重要有字串替換,計算字串長度 等等。下面對這些操作進行乙個總結。返回 string的長度 在 string中,從 position位置之後開始提取子串 在 string中,從 position位置之後開始提取 length長度的...