thi*_*uy 5 variables bash integer if-statement
我正在尝试在 bash 中编写一个 if 语句,如果提供的变量不是整数,该语句将退出。我最终会将这个 if 语句嵌套在 while 循环中。
当我运行此命令时,我收到语法错误。
#!/bin/bash
if [ $f1 != ^[0-9]+$ ]
then
exit 1
fi
Run Code Online (Sandbox Code Playgroud)
你最好像这样否定这个条件:
if [[ ! "$f1" =~ ^[0-9]+$ ]]; then
exit 1
fi
Run Code Online (Sandbox Code Playgroud)
请注意正则表达式的[[and]]语法,以及!对它取反的语法。然后,我们使用=~正则表达式。
$ r=23a
$ [[ ! "$r" =~ ^[0-9]+$ ]] && echo "no digit" || echo "digit"
no digit
$ r=23
$ [[ ! "$r" =~ ^[0-9]+$ ]] && echo "no digit" || echo "digit"
digit
Run Code Online (Sandbox Code Playgroud)