Shell學習【引數傳遞】
引數傳遞
shell指令碼執行可以透過引數傳遞到指令碼 來作為自動輸入引數
#!/bin/bash #定義陣列 echo "Shell 傳遞測試"; echo "這是水果:$0"; echo "這是水果:$1"; echo "這是水果:$2";
執行指令碼時需要匯入傳遞的值
chmod +x test.sh ./test.sh Banana apple orange #顯示結果 這是水果:Banana; 這是水果:apple; 這是水果:orange;
特殊字元:
$# | 傳遞到指令碼的引數個數 |
$* |
顯示所有向指令碼傳遞的引數。
|
$$ | 指令碼執行的當前程式ID號 |
$! | 後臺執行的最後一個程式的ID號 |
$@ |
與$*相同,但是使用時加引號,並在引號中返回每個引數。
如"$@"只有在雙引號中體現出來、以"$1" "$2" … "$n" 的形式輸出所有引數。 |
$- | 顯示Shell使用的當前選項,與 功能相同。 |
$? | 顯示最後命令的退出狀態。0表示沒有錯誤,其他任何值表明有錯誤。 |
#判斷上一步操作是否成功 即是否 $?=0 #!/bin/bash if [ $? -eq 0 ];then echo -e "\033[36mThis **** successful!!\033[0m" else echo -e "\033[32mthis **** failed !!!\033[0m" fi
#判斷是否有引數輸入 if [ -n "$1" ]; then echo "包含第一個引數" else echo "沒有包含第一引數"fi
#判斷目錄是否存在 #!/bin/bash BAK_DIR=/usr/local/tomcat/webapps_bak/`date +%Y%m%d` if [ ! -d $BAK_DIR ];then mkdir -p $BAK_DIR fi
#判斷檔案是否存在 #!/bin/bash BAK_DIR=/usr/local/tomcat/webapps_bak/`date +%Y%m%d` if [ ! -e $BAK_DIR ];then touch $BAK_DIR fi
#判斷字串是否相同,注意空格使用 #!/bin/bash BAK_DIR="str" if [[ ${BAK_DIR} = ${BAK_DIR} ]];then echo "${BAK_DIR} 相同" else echo "${BAK_DIR} 不相同" fi
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31441024/viewspace-2640263/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Shell自學二(引數傳遞和陣列)陣列
- shell (3)指令碼引數傳遞與數學運算指令碼
- go 呼叫 shell 指令碼 如何傳遞引數Go指令碼
- 深入學習js之——引數按值傳遞#9JS
- 引數傳遞
- Mybatis引數傳遞MyBatis
- React事件傳遞引數React事件
- 路由元件傳遞引數路由元件
- Vue3學習(十九) - 使用Vue完成頁面引數傳遞Vue
- JS的方法引數傳遞(按值傳遞)JS
- Flutter:學會在頁面間傳遞引數Flutter
- 引數傳遞方式必須是const引用傳遞
- 引數的定義和引數的傳遞
- linux中main引數傳遞LinuxAI
- 利用閉包傳遞引數
- JavaScript函式傳遞引數JavaScript函式
- out,ref,params引數傳遞
- 請求引數的傳遞
- 函式的引數傳遞函式
- t-on-click 傳遞引數
- 函式作為引數傳遞函式
- Python怎麼傳遞不定引數Python
- C++引數的傳遞方式C++
- [Python] 傳遞引數前面的*或**Python
- 引數傳遞機制之JWTJWT
- JAVA基礎之-引數傳遞Java
- 函式引數傳遞及返回函式
- Java方法04:命令列傳遞引數、可變引數Java命令列
- Python的函式引數傳遞:傳值?引用?Python函式
- 面試官問:Go 中的引數傳遞是值傳遞還是引用傳遞?面試Go
- 帶你深入理解傳遞引數
- GridView傳遞兩個引數的方法View
- apicloud拉起小程式並傳遞引數APICloud
- java 傳遞引數的兩種方式Java
- [ASP.NET] 使用Request 傳遞引數ASP.NET
- JavaScript 獲取 url 傳遞引數值JavaScript
- python中函式的引數傳遞Python函式
- Day18--命令列傳遞引數命令列