gpt4 book ai didi

bash - 仅文件通配和匹配数字

转载 作者:行者123 更新时间:2023-11-29 09:18:40 30 4
gpt4 key购买 nike

在 bash 脚本中,我需要验证用户是否输入了实际数字,因此我认为最简单的方法是实现 case:

case $1 in
[0-9]*)
echo "It's ok"
;;
*)
echo "Ain't good!"
exit 1
;;
esac

但是我在文件通配方面遇到了困难,因为我找不到一种方法来要求 $1 值只能是数字。或者另一种方法可以排除所有备选方案:

case $1 in
-*)
echo "Can't be negative"
exit 1
;;
+*)
echo "Must be unsigned"
exit 1
;;
*[a-zA-z]*)
echo "Can't contain letters"
exit 1
;;
esac

问题是在这种情况下我应该能够阻止像 ! 这样的“特殊”字符。 ? ^ = ( ) 等等......我不知道如何实现它。请有人给我提示吗?

最佳答案

其实用起来会更好

*[!0-9]*

代替

*[^0-9]*

第一个是 POSIX,第二个是 bashism[1]。

[1] http://rgeissert.blogspot.com/2013/02/a-bashism-week-negative-matches.html

关于bash - 仅文件通配和匹配数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6683779/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com