2016-12-17 52 views
1

我寫了一個小的korn腳本,但是當我嘗試運行該腳本時,它不會回顯我想要顯示的消息。當我嘗試通過運行它Korn有條件的操作員不工作

ksh script.sh -1 

它沒有呼應消息。

if [ $# -le 0 ] 
    then 
     echo "That is a negative integer!" 
    exit 
fi 
+0

支持是它來砸或ksh?這是兩種不同的語言! –

+0

哎呀,我的意思是korn外殼。我現在編輯它。 – user3807468

+0

參數的數量如何爲負數? – karakfa

回答

2

在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

編輯2

如果你期待以匹配特定字符串,然後做下面取代-le

[ ${1:-NULL} = "StringToMatch" ] && DoSomething 

如果您正在查看輸出是否只有至少一個非數字字符,請執行以下操作:

[[ {1:-NULL} =~ [^[:digit:]]+ ]] && DoSomething 

警告:不是在鏈接中提到的所有擴展可能不被ksh

+0

謝謝,會選擇你的答案,作品像一個魅力! – user3807468

+0

@ user3807468:我做了一個編輯,請看看它:) – sjsam

+0

只是一個簡單的問題,我現在試圖檢測輸入是否是字符串。我會怎麼做?我試圖查找它,但我找不到任何關於它的信息。我試圖寫下來,但是當我輸入任何數字時,它會拒絕它。 'code'[$ 1!=^[0-9]] – user3807468