我是新来痛击脚本和尝试写以下简单巴什脚本检查条件
function wait_some {
if [ -z $1 ];
echo some_string
then if ! [[ $1 =~ ^[0-9]+([.][0-9]+)?$ ]];
then
echo "$1 is not a number"
exit 2
else echo "it's a number"
fi
fi
}
wait_some 2.2 //prints some_string and then it's a number
而这按预期工作。
但如果我删除回声“一些字符串”不打印输出:
function wait_some {
if [ -z $1 ];
then if ! [[ $1 =~ ^[0-9]+([.][0-9]+)?$ ]];
then
echo "$1 is not a number"
exit 2
else echo "it's a number"
fi
fi
}
wait_some 2.2 //prints nothing
为什么为什么删除echo some_string
状态检查打破了功能之后
它的工作原理,谢谢。 – user3663882
请注意,'-z'测试甚至没有必要;你可以试着将空字符串与正则表达式匹配得很好。空字符串不是数字:) – chepner
@chepner:感谢您的评论。除了不正确的语法之外,不想修改作者的代码。很多改进都是可能的。 :) – Inian