如何检查输入是GNU bash中的数字还是字母

问题描述 投票:-1回答:1

我在GNU sed命令中收到意外的“ If”然后“”错误。如何连续检查输入。请帮助我

if ! [[ "$versionCode" =~ ^[0-9]+$ ]]
then
    echo "Sorry integers only"
fi

这是我的错误

sh: 1: Syntax error: end of file unexpected (expecting "then")

sh: 1: Syntax error: "then" unexpected

Sorry integers only
sh: 1: Syntax error: "fi" unexpected

更新:

echo "Enter version code" 
read versionCode
case "$versionCode" in
   (*[!0-9]*) echo "Sorry integers only";;
   ("")       echo "Empty is not a version code";;
   (*)        echo "do something with $versionCode";;
 esac
echo "$versionCode"
sudo  sed "s/\(versionCode[[:space:]]*\)[0-9]*/\1${versionCode}/" Version.gradle

这是我的错误

Enter version code
4

sh: 1: Syntax error: end of file unexpected (expecting ")")

sh: 1: Syntax error: word unexpected

sh: 1: Syntax error: word unexpected

sh: 1: Syntax error: word unexpected

sh: 1: Syntax error: "esac" unexpected
shell carriage-return
1个回答
0
投票

POSIXly便携式方法是>

 case "$versionCode" in
   (*[!0-9]*) echo "Sorry integers only";;
   ("")       echo "Empty is not a version code";;
   (*)        echo "do something with $versionCode";;
 esac
© www.soinside.com 2019 - 2024. All rights reserved.