shell 空格問題

來源:互聯網
上載者:User

標籤:

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

  eg:
    gender=femal------------right
    gender =femal-----------wrong
    gender= femal-----------wrong
2.條件測試語句 [ 符號的兩邊都要留空格.

  eg:

    if [ $gender = femal ]; then-------right.
    echo "you are femal";
    fi

    if[ $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 換行寫, 那麼也沒問題.(bash:==,dash =)

  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就要用空格分開
  空格是命令解析中的重要分隔字元

shell 空格問題

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.