我有一個shell函數,我想檢查用戶是否傳遞了第二個變量。我曾經試過,但它似乎並不奏效測試用戶是否傳入了shell變量
function dash() {
if [ -z "$2" ]; then
open dash://$1:$2;
else
open dash://$1;
fi
}
基本上,我想如果第二個參數$2
在做傳遞給說「X」代勞「Y」
我有一個shell函數,我想檢查用戶是否傳遞了第二個變量。我曾經試過,但它似乎並不奏效測試用戶是否傳入了shell變量
function dash() {
if [ -z "$2" ]; then
open dash://$1:$2;
else
open dash://$1;
fi
}
基本上,我想如果第二個參數$2
在做傳遞給說「X」代勞「Y」
只要做到:
function dash() {
open dash://$1${2+:}$2
}
如果設置了$2
,則${2+:}
將擴展爲:
,否則爲空字符串。
$#
給出數傳遞
if [ $# -eq 2 ]
then
echo "2 arguments passed"
fi
參數的功能,可以通過這個
function dash() {
if [ "$#" -gt 1 ]; then
open "dash://$1:$2"
else
open "dash://$1"
fi
}
固定210
$#
來檢查參數的數量。,並調用你的函數,引號,以及時:
dash "first argument" "second argument"
或者
dash "first argument"
如果你這樣做:
first='first argument'
dash $first
會有兩個參數(第一和參數),而不是一個。
你只是將它反向 - 空字符串的「-z」測試。所以,只要將它,或者使用 「-n」(NOT NULL):
function dash() {
if [ -n "$2" ]; then
open dash://$1:$2;
else
open dash://$1;
fi
}
這個網站是一個很好的瞭解更多信息:
heh。就像我孩子會說的那樣,「快樂!」 – jthill