在fish shell中,如何检查变量是否为数字?
如何检查变量是否是鱼壳中的数字?在fish shell中,如何检查变量是否为数字?,shell,fish,Shell,Fish,如何检查变量是否是鱼壳中的数字? 正在寻找一种简单的方法。一种可能的解决方案是使用字符串匹配,如下所示: set num 123 if string match -qr '^[0-9]+$' $num; echo 'it is a number!'; end 如果num不是一个数字,则不进行任何回显 下面是fish shell文档中的字符串匹配摘要: 一种可能的解决方案是使用字符串匹配,如下所示: set num 123 if string match -qr '^[0-9]+$' $num;
正在寻找一种简单的方法。一种可能的解决方案是使用字符串匹配,如下所示:
set num 123
if string match -qr '^[0-9]+$' $num; echo 'it is a number!'; end
如果num不是一个数字,则不进行任何回显
下面是fish shell文档中的字符串匹配摘要:
一种可能的解决方案是使用字符串匹配,如下所示:
set num 123
if string match -qr '^[0-9]+$' $num; echo 'it is a number!'; end
如果num不是一个数字,则不进行任何回显
下面是fish shell文档中的字符串匹配摘要:
检查变量中是否有非数字:
if not string match --quiet --regex '\D' $var; ...
# or
if string match --quiet --regex --invert '\D' $var; ...
检查变量中是否有非数字:
if not string match --quiet --regex '\D' $var; ...
# or
if string match --quiet --regex --invert '\D' $var; ...
我认为fish从Tcl获得了一些灵感:string子命令非常类似:vs Tcl中一个很好的子命令是string,您可以在这里说
if {[string is integer $num]} {
puts "$num is an integer"
}
我已经破解了一个函数来公开fish中的string is[class][string]:
我认为fish从Tcl获得了一些灵感:string子命令非常类似:vs Tcl中一个很好的子命令是string,您可以在这里说
if {[string is integer $num]} {
puts "$num is an integer"
}
我已经破解了一个函数来公开fish中的string is[class][string]:
我的尝试:
数学0+$argv[2]2>/dev/null
如果测试$status-网元0
echo argv 2不是数字
其他的
echo argv是数字的
终止
我的尝试:
数学0+$argv[2]2>/dev/null
如果测试$status-网元0
echo argv 2不是数字
其他的
echo argv是数字的
终止
如果$var设置为:123asd,那么您的第一个建议似乎不起作用。您能在不起作用的地方提供一个字符串吗?设置var 1234;如果字符串匹配-qra'\d+'$var;echo$var是一个数字;结束-你想匹配浮点数吗?我已经编辑了我的评论,我的意思是类似123asd的东西。我重新阅读了文档,并且-所有这些都不是我想的。我知道你在告诉我,123asd作为一个数字错误地报告了积极性。我很抱歉。我的困惑是不起作用-这不是一个信息量很大的错误报告。如果$var设置为:123asd,您的第一个建议似乎不起作用。您能提供一个不起作用的字符串吗?设置var 1234;如果字符串匹配-qra'\d+'$var;echo$var是一个数字;结束-你想匹配浮点数吗?我已经编辑了我的评论,我的意思是类似123asd的东西。我重新阅读了文档,并且-所有这些都不是我想的。我知道你在告诉我,123asd作为一个数字错误地报告了积极性。我很抱歉,我的困惑是它不起作用——这不是一个信息量很大的错误报告。