0
我必須編寫這個腳本,它將顯示每行輸入自己的行,並用「*****」分隔每行。我已經明白了這一點,但現在我需要它來檢測什麼時候將「TestError」和/或「now」作爲參數輸入。現在它的設置方式會正確檢測這些單詞,如果它們是該行的第一個參數,我不知道如何將它設置在檢測該單詞的位置,而不管它在哪行上。我還需要幫助*?在我需要它說「不知道該怎麼處理」的情況下,對於不是「TestError」或「now」的其他所有參數,此時它將爲第一個參數執行,而不是其他參數。bash腳本case語句需要檢測特定參數
它會按照現在的方式工作嗎?或者我只需要使用*?和*的情況下,只是把一個if/then/else/fi語句放在*中?以便找到「TestError」「now」和其他任何參數。
# template.sh
function usage
{
echo "usage: $0 arguments ..."
if [ $# -eq 1 ]
then echo "ERROR: $1"
fi
}
# Script starts after this line.
case $1 in
TestError)
usage $*
;;
now)
time=$(date +%X)
echo "It is now $time"
;;
*?)
echo "My Name"
date
echo
usage
printf "%s\n*****\n" "Do not know what to do with " "[email protected]"
;;
*)
usage
;;
esac
很酷的感謝,我試圖做一個循環內的案件陳述之一哈哈。 – PFKrang
*和*?我只是用一個來檢測是否輸入了參數,另一個是用來檢測是否輸入了任何內容。我不確定是否有更好的方法來做到這一點。 – PFKrang
如果沒有參數,甚至不會輸入循環。你可以用''「'(空字符串)匹配一個空參數。 – chepner