Bash脚本中[]内语句及"$1" == ""语法含义咨询
#!/bin/bash if [ "$1" == "" ] then echo "A" echo "B" fi
Bash脚本问题解答
1、方括号[]内部的语句代表什么含义
- Bash中的
[]是内置test命令的简写语法,方括号内部的内容就是传给test命令的条件判断表达式,会对传入的内容做运算判断,最终返回退出状态码:状态码为0代表条件成立,非0代表条件不成立,if语句会根据这个状态码决定是否执行后续分支代码。 - 注意原代码存在语法问题:
[]和内部的表达式之间必须保留空格,正确写法应为[ "$1" == "" ],缺少空格会直接运行报错。
2、"$1" == ""判断条件里带数字的$符号相关写法的具体作用是什么
- 这种带数字的
$n格式是Bash的位置参数变量,用来接收执行脚本/函数时从外部传入的参数:$0固定代表当前执行的脚本本身的文件名$1代表传入的第一个位置参数,$2代表第二个,以此类推,参数序号大于9时需要写成${10}的格式
- 这里
"$1" == ""的判断逻辑就是检测执行当前脚本时,用户有没有传入第一个参数,如果没有传入任何参数,$1的值就是空字符串,条件成立,就会执行后续输出A、B的逻辑。
内容的提问来源于stack exchange,提问作者Evo
相关产品推荐
相关产品推荐

