好比你新建了一個shell腳本 Test.sh, 內容以下:shell
#!/bin/sh echo "shell腳本自己的名字: $0" echo "傳給shell的第一個參數: $1" echo "傳給shell的第二個參數: $2"
保存退出後,你在Test.sh所在的目錄下輸入 bash Test.sh 1 2bash
結果爲:oop
shell腳本自己的名字: Test.sh 傳給shell的第一個參數: 1 傳給shell的第二個參數: 2
if條件+then操做+else操做+fi閉合
shell腳本中$?是指上一次命令執行的成功或者失敗的狀態。若是成功就是0,失敗爲1.。語句if [ $? -eq 0 ] 是判斷if語句的上一個命令執行若是成功就執行if中的語句,不然就執行else中的內容。code
使用時要注意,if後面的中括號[ $? -eq 0 ],括號的兩邊須要有一個空格。blog
#判斷hdfs上的path路徑是否存在 #hadoop fs -test -e 判斷路徑,存在返回0 hadoop fs -test -e path if [ $? -eq 0 ]; then echo "====此路徑存在!====" else echo "====此路徑不存在!====" exit 1 fi
$0: shell或shell腳本的名字 $*:以一對雙引號給出參數列表 $@:將各個參數分別加雙引號返回 $#:參數的個數 $_:表明上一個命令的最後一個參數 $$:表明所在命令的PID $!:表明最後執行的後臺命令的PID $?:表明上一個命令執行後的退出狀態 -eq 等於,如:if ["$a" -eq "$b" ] -ne 不等於,如:if ["$a" -ne "$b" ] -gt 大於,如:if ["$a" -gt "$b" ] -ge 大於等於,如:if ["$a" -ge "$b" ] -lt 小於,如:if ["$a" -lt "$b" ] -le 小於等於,如:if ["$a" -le "$b" ] < 小於(須要雙括號),如:(("$a" < "$b")) <= 小於等於(須要雙括號),如:(("$a" <= "$b")) > 大於(須要雙括號),如:(("$a" > "$b")) >= 大於等於(須要雙括號),如:(("$a" >= "$b"))
轉載於:https://www.imooc.com/article/308449hadoop