【shell 】 test, /usr/bin/test, [ ], 和/usr/bin/[都是等價命令

楊奇龍發表於2011-03-16
 test, /usr/bin/test, [ ], 和/usr/bin/[都是等價命令
#!/bin/bash  
echo
 if test -z "$1"
   then
     echo "No command-line arguments."
   else
     echo "First command-line argument is $1."
 fi
  echo
  if /usr/bin/test -z "$1"      # 與內建的"test"命令結果相同.
  then
    echo "No command-line arguments."
  else
    echo "First command-line argument is $1."
  fi
  echo  
  if [ -z "$1" ]                # 與上邊的程式碼塊作用相同.
  #   if [ -z "$1"                應該能夠執行, 但是...
  #+  Bash報錯, 提示缺少關閉條件測試的右中括號.
  then
    echo "No command-line arguments."
  else
    echo "First command-line argument is $1."
  fi
  
  echo
  
  
  if /usr/bin/[ -z "$1" ]       # 再來一個, 與上邊的程式碼塊作用相同.
  # if /usr/bin/[ -z "$1"       # 能夠工作, 但是還是給出一個錯誤訊息.
"vartify.sh" [New] 46L, 1086C written
root@client.example.com ~/yang # chmod 755 vartify.sh
root@client.example.com ~/yang # ./vartify.sh       
No command-line arguments.
No command-line arguments.
No command-line arguments.
No command-line arguments.
root@client.example.com ~/yang # ./vartify.sh yangqilong
First command-line argument is yangqilong.
First command-line argument is yangqilong.
First command-line argument is yangqilong.
First command-line argument is yangqilong.
root@client.example.com ~/yang # 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-689631/,如需轉載,請註明出處,否則將追究法律責任。

相關文章