我一直在创建将 if/else 的输出分配给一个变量,但一直出现错误。
例如:
mathstester=$(If [ 2 = 2 ]
Then echo equal
Else
echo "not equal"
fi)
Run Code Online (Sandbox Code Playgroud)
所以每当我添加$mathstester脚本时,布局如下:
echo "Equation: $mathstester"
Run Code Online (Sandbox Code Playgroud)
它应该显示:
Equation: Equal
Run Code Online (Sandbox Code Playgroud)
我需要以不同的方式布置它吗?甚至有可能吗?
把if语句放在赋值语句中比较笨拙,容易出错。更标准的方法是将赋值放在if:
if [ 2 = 2 ]; then
mathstester="equal"
else
mathstester="not equal"
fi
Run Code Online (Sandbox Code Playgroud)
至于测试变量,您可以使用类似if [ "$b" = 2 ](它将进行字符串比较,例如,如果 b 是“02”,它将不等于“2”)或if [ "$b" -eq 2 ],它进行数字比较(仅限整数)。如果您实际上正在使用 bash(不仅仅是一个通用的 POSIX shell),您还可以使用if [[ "$b" -eq 2 ]](类似于[ ],但对于更复杂的表达式使用更简洁的语法)和(( b == 2 ))(这些仅用于数字表达式,并且具有非常不同的语法)。请参阅BashFAQ #31: test, [ 和 [[ 之间有什么区别?更多细节。
正确的使用方法if是:
mathtester=$(if [ 2 = 2 ]; then echo "equal"; else echo "not equal"; fi)
Run Code Online (Sandbox Code Playgroud)
要在多行语句中使用它,您可能会考虑查看link。
| 归档时间: |
|
| 查看次数: |
17814 次 |
| 最近记录: |