[英]Bourne Shell Script to print out last argument
我試圖創建一個布爾型shell腳本,該腳本將使用0個或更多的空格,並打印出最后一個空格。我習慣於編寫Java,對此我很困惑,慢慢開始學習C。
@Michael解決方案的替代方法:
#!/usr/bin/env bash
echo "${@: -1}"
$@
是具有所有參數的數組。 :
通常用於分割字符串(您可以在echo "${USER: -1}"
進行嘗試,以驗證它是否打印了用戶名的最后一個字符),但也可以用於數組以獲取最后一個元素 。 if [ "${@: -1}" = "--help" ]
) lastArg=`echo $@ | awk '{print $NF}'`
這是一個簡短的Bash腳本,可以完成此操作:
#!/usr/bin/env bash
echo "${!#}"
但是,這不是Bourne shell腳本。 不能使用read
命令從鍵盤read
Arg。 而是在運行腳本時在命令行上提供它們。 例如,如果將此文本放在script.sh
並運行./script.sh abcde
,它將打印:
e
這應該工作:
eval lastarg='$'$#
echo last arg is $lastarg
這適用於/bin/sh
為bash
或dash
。
無論如何,我都無法使用“真實的” /bin/sh
對其進行測試。
在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];
[...]
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.