gpt4 book ai didi

linux - 什么时候应该在 bool 条件下将变量放在引号中?

转载 作者:IT王子 更新时间:2023-10-29 00:46:16 25 4
gpt4 key购买 nike

下面两个 bool 表达式是否相同?

if [ -n $1 ] ; then   
if [ -n "$1" ] ; then

还有这两个

if [ $? == 0 ] ; then
if [ "$?" == 0 ] ; then

如果不是 - 什么时候应该将变量放在引号中?

最佳答案

当值可能包含空格或通常不是连续的字符串时,将变量放在引号中。所以

因为 $? 应该总是介于 0 和 255 之间,你不需要引用它,因为它是每个子进程返回后设置的返回值。不可能通过直接分配字符串值来打破它,即

$?=Is of course wrong and should be

?=Bad value assigment

因为用户变量名必须以 [A-Za-z_] 开头,所以不要这样做 ;-)

而对于 $1,如果传入一个值,例如

myscript "arg1 with spaces"

测试

if [ -n $1 ] ; then

会爆炸,

但是测试

if [ -n "$1" ] ; then  

会成功。

健康教育

关于linux - 什么时候应该在 bool 条件下将变量放在引号中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12202778/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com