我搜索了if if not commands,找到了很多特定命令的答案,但是如果我想要任何命令的东西,怎么办呢?我想知道是否有办法让每一个条件都能扭转它的结果...而不是像知道-eq和-ne ......
我想要做的不是这个
while [ -z ${!specificCommands[$d]} ]
并且不是为了这个
for (( d=1; d<=$qtyOfParamInACommand; d++ ))
尝试
for (( d=1; ![d<=$qtyOfParamInACommand]; d++ ))
但结果不符合预期
所以不仅仅是正常的...这可能是简单的语法。我将非常感谢这个命令的具体答案,但我的观点是在C中反向使用!
答案 0 :(得分:2)
与之相反:
while [ -z ${!specificCommands[$d]} ]
是以下任何一种:
while ! [ -z ${!specificCommands[$d]} ]
while [ -n ${!specificCommands[$d]} ]
请注意,您还需要引用变量,或使用不需要引号的双括号。如果不这样做,当${!specificCommands[$d]}
为空字符串时,您将遇到麻烦。
# better
while ! [ -z "${!specificCommands[$d]}" ]
while [ -n "${!specificCommands[$d]}" ]
# best
while ! [[ -z ${!specificCommands[$d]} ]]
while [[ -n ${!specificCommands[$d]} ]]
否定:
for ((d = 1; d <= qtyOfParamInACommand; d++))
是:
# note: broken
for ((d = 1; !(d <= qtyOfParamInACommand); d++))
for ((d = 1; d > qtyOfParamInACommand; d++))
请注意,$
内部不需要((...))
。
另外,实际上你不会否定这个条件,你会翻转整个循环以使它向后计数。我上面写的循环实际上已经破了。这是一个更恰当的“对立面”:
for ((d = qtyOfParamInACommand; d >= 1; d--))