shell - 如何在 GNU bash 中检查输入是数字还是字母
问题描述
我在 GNU sed 命令中收到错误“如果”然后“”意外。如何连续检查输入。请帮助我
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
解决方案
POSIXly 可移植的方法是
case "$versionCode" in
(*[!0-9]*) echo "Sorry integers only";;
("") echo "Empty is not a version code";;
(*) echo "do something with $versionCode";;
esac
推荐阅读
- python - 抓取的 Javascript JSON 转换为 Python JSON
- firebase - React-Native Firebase Firestore Apple 登录错误:权限缺失或不足
- r - 如何在ggplot中为一种美学创建多个图例?
- python - TypeError: pic 应该是 Tensor 或 ndarray。得到
- ruby-on-rails - Etsy oauth 和获取信息
- mobx - Mobx如何计算状态值
- google-cloud-platform - 跨系统更新更改所需的时间
- android - 当用户发送消息并且消息顺序不正确时,聊天应用程序随机显示消息
- flutter - 动态更改滑块最大值并中止拖动
- bash - 运行我的程序 N 次并返回平均运行时间 -bash