加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 什么时候应该在布尔条件中用引号推送变量?

发布时间:2020-12-14 01:37:42 所属栏目:Linux 来源:网络整理
导读:以下两个布尔表达式是否相同? if [ -n $1 ] ; then if [ -n "$1" ] ; then 而这两个 if [ $? == 0 ] ; thenif [ "$?" == 0 ] ; then 如果不是 – 什么时候应该在引号中加上变量? 解决方法 当有可能包含空格时,将变量放在引号中,或者通常不是连续的字符串.
以下两个布尔表达式是否相同?

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

将会成功.

IHTH

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读