我试图用基于输入的输出制作一个bash脚本。我的代码如下所示:
#!/bin/bash
echo "Letter:"
read a
if a=3
then
echo "LOL"
fi
if a=4
then
echo "ROFL"
fi
但是当我输入3或4时,我同时得到LOL
和ROFL
。我有办法得到LOL
3和ROFL
4吗?抱歉,如果我使用的术语和内容不正确,我是bash脚本的新手。
在中bash
,a=3
是作业,而不是测试。使用,例如:
if [ "$a" = 3 ]
在内部[...]
,等号测试字符串(字符)是否相等。如果您想测试数值,则使用'-eq`,如下所示:
if [ "$a" -eq 3 ]
上面的“ $ a”周围的引号对于避免在a
为空时出现“运算符”错误是必要的。
bash
还提供了一个[[
以不同格式开头的条件表达式。许多人更喜欢这种[[
格式(例如避免了上面提到的引用问题),但是代价是失去了与其他shell的兼容性。特别要注意的是dash
,它不是/bin/sh
Debian派生的发行版中脚本的默认shell(),没有[[
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句