請幫忙。如何使正則表達式在if條件下工作, 檢查用戶輸入(在第二個參數中)必須不等於任何數字?正則表達式 - 檢查輸入是否是csh中的數字(unix)
set regex="^[0-9]+$"
if ($#argv == 2 && $2 != $regex) then
# do this
請幫忙。如何使正則表達式在if條件下工作, 檢查用戶輸入(在第二個參數中)必須不等於任何數字?正則表達式 - 檢查輸入是否是csh中的數字(unix)
set regex="^[0-9]+$"
if ($#argv == 2 && $2 != $regex) then
# do this
grep的基礎解決方案僅適用於非負整數。
#!/bin/csh
# Note this requires 2 command line arguments, and checks the second one
# cshell arguments are 0-indexed.
if ($#argv == 2) then
# Note the different grep regexp syntax, and you must use single quotes
set test = `echo $2 | grep '^[0-9]*$'`
if (($test) || ($test == 0)) then
echo "Bad input"
else
echo "Ok!"
endif
endif
TRy this'if [$#argv == 2 &&! $ 2 =〜$ regex]' – 2014-10-20 02:31:18
嗨,我試過,但即時得到「**可變語法**」錯誤。 – user68890 2014-10-20 02:44:53
'... &&! $ 2 =〜「$ regex」] ...''? (注意'regex'變量周圍的dbl引號,很抱歉,但我沒有辦法測試它)。祝你好運。 – shellter 2014-10-20 03:36:03