我寫了一個小的korn腳本,但是當我嘗試運行該腳本時,它不會回顯我想要顯示的消息。當我嘗試通過運行它Korn有條件的操作員不工作
ksh script.sh -1
它沒有呼應消息。
if [ $# -le 0 ]
then
echo "That is a negative integer!"
exit
fi
我寫了一個小的korn腳本,但是當我嘗試運行該腳本時,它不會回顯我想要顯示的消息。當我嘗試通過運行它Korn有條件的操作員不工作
ksh script.sh -1
它沒有呼應消息。
if [ $# -le 0 ]
then
echo "That is a negative integer!"
exit
fi
在bash/KSH $#
表示作爲參數傳遞的參數的數目。 你所需要的是
if [ ${1:-0} -lt 0 ] # $1 is the first parameter
then
echo "That is a negative integer!"
exit
fi
還是上面
的一個縮[ ${1:-0} -lt 0 ] && echo "That is a negative integer!" && exit
編輯1
${1:-0}
提供一個默認值。-lt
編輯2
如果你期待以匹配特定字符串,然後做下面取代-le
[ ${1:-NULL} = "StringToMatch" ] && DoSomething
如果您正在查看輸出是否只有至少一個非數字字符,請執行以下操作:
[[ {1:-NULL} =~ [^[:digit:]]+ ]] && DoSomething
警告:不是在鏈接中提到的所有擴展可能不被ksh
謝謝,會選擇你的答案,作品像一個魅力! – user3807468
@ user3807468:我做了一個編輯,請看看它:) – sjsam
只是一個簡單的問題,我現在試圖檢測輸入是否是字符串。我會怎麼做?我試圖查找它,但我找不到任何關於它的信息。我試圖寫下來,但是當我輸入任何數字時,它會拒絕它。 'code'[$ 1!=^[0-9]] – user3807468
支持是它來砸或ksh?這是兩種不同的語言! –
哎呀,我的意思是korn外殼。我現在編輯它。 – user3807468
參數的數量如何爲負數? – karakfa