我試圖創建一個bourne shell腳本,它將採用0個或更多的arugments並打印出最後一個arugment,我用它來編寫Java和im,因此很困惑,慢慢開始學習C.Bourne Shell腳本打印出最後一個參數
回答
lastArg=`echo [email protected] | awk '{print $NF}'`
#!/ bin/sh 讀取參數 echo「Enter args:$ args」 set $ args lastArg ='echo $ @ | awk'{print $ NF}'' echo $ lastArg' – BeagleBoy360
@ BeagleBoy360 - 這個評論是否說明你明白了?還是你在糾正某些問題? – jdi
在bash:
last_arg=`echo $* | rev | cut -d " " -f1 | rev`;
echo $last_arg
你的問題中提到C.在C更容易了:
int main (int argc, char *argv[]) {
char *last_arg = argv[argc - 1];
[...]
}
#!/ bin/sh 閱讀參數 echo「Enter args:$ args」 last_arg ='echo $ * | rev | cut -d「」-f1 | rev'; echo $ last_arg – BeagleBoy360
這裏是一個簡短的Bash腳本,它會這樣做:
#!/usr/bin/env bash
echo "${!#}"
雖然這不是Bourne shell腳本。使用read
命令不會從鍵盤讀取參數。相反,它們是在運行腳本時在命令行中提供的。例如,如果你把這個文本script.sh
和運行./script.sh a b c d e
將打印:
e
我應該注意到,有一點這個問題被標記爲「bash」。 –
的替代@邁克爾的解決方案:
#!/usr/bin/env bash
echo "${@: -1}"
[email protected]
與所有參數數組。:
用於正常拆分字符串(您可以使用echo "${USER: -1}"
來驗證它是否打印出用戶名的最後一個字符),但也可以用於陣列以獲取最後的元素。需要- 大括號的數組索引工作
- 的報價僅僅是很好的做法,使代碼的情況下,更爲靈活的你想在其他變量混合,或者需要在一份聲明中使用的值這需要一個空的字符串,而不是在沒有任何參數(例如
if [ "${@: -1}" = "--help" ]
)
的情況下,這應該工作:
eval lastarg='$'$#
echo last arg is $lastarg
這適用於/bin/sh
是bash
或dash
。
我無法用「真實」/bin/sh
進行測試,無論那是什麼。
- 1. Bourne shell腳本
- 2. Bourne Shell腳本中的「參數太少」
- 3. 瞭解bourne shell腳本
- 4. Bourne Shell腳本問題
- 5. 運行Bourne shell腳本
- 6. shell腳本打印出「讀取:缺少參數」
- 7. 獲取傳遞給shell腳本的最後一個參數
- 8. Bourne shell版本
- 9. 打印文件 - Shell腳本
- 10. CGI腳本,打印出一個傳入的參數
- 11. 如何獲取最後一個參數並在shell腳本中的最後一個參數之前停止?
- 12. Shell腳本打印下一行
- 13. 從shell腳本打印xml版本
- 14. 打印兩個變量輸出使用shell腳本
- 15. 打印輸出到shell腳本2個獨立的列
- 16. 意外的bourne shell腳本語句輸出
- 17. 調用另一個腳本後退出循環的Shell腳本
- 18. Shell腳本在上次執行後修改後打印文件?
- 19. Shell腳本檢查一個腳本輸出,然後運行第二個腳本
- 20. 數組,並列出了Bourne Shell中
- 21. Shell腳本以表格格式打印
- 22. Shell腳本打印元素列表
- 23. 如何打印在shell腳本
- 24. 慶典打印定腳本參數
- 25. 傳遞後臺打印文件的名稱從一個shell腳本
- 26. R:執行腳本n次,僅打印最後一個請求的函數
- 27. shell腳本的輸出是另一個shell腳本
- 28. bash腳本打印輸出
- 29. bourne shell小寫
- 30. 用於在多臺打印機中打印的Shell腳本
「Bourne shell」(根據標題)或「Bourne Again Shell(bash)」(根據標籤)? – Johnsyweb
如果傳遞0個參數,如何打印最後一個參數? –
它應該不會返回任何內容。 – BeagleBoy360