gpt4 book ai didi

linux - shell 脚本 : Quotes Around Variable with\$

转载 作者:太空宇宙 更新时间:2023-11-04 09:45:28 25 4
gpt4 key购买 nike

我刚刚开始学习 shell 脚本,并一直在尝试锻炼这个脚本中发生的事情:http://dev.cloudtrax.com/wiki/ng-cs-ip-logging

具体来说,我无法理解使用 "\$foo" 的几行代码,例如:

[ -z "\$plug_event"] && return

我所阅读和了解的有关 shell 脚本的所有内容都让我相信 "\$plug_event" 会被评估为一个值为 $plug_event 的字符串。这意味着上述测试将总是返回1(即测试为假),对吧?如果是这样,有什么意义?

我发现了很多关于变量的引号,但到目前为止我还没有找到这种用法的一个例子。这只是一个错字吗?不幸的是,我还没有足够的经验来区分它们。

非常感谢所有帮助,相关文档的链接就足够了。

干杯,凯尔

最佳答案

转义所有$的原因s 是那些行是 here-docs 的一部分

命令cat > /etc/ip_logging.sh << EOF将以下所有文本输出到 /etc/ip_logging.sh直到它达到 EOF ,而不是评估当前脚本中的变量,$必须转义。

或者,为了使代码更易于阅读,将终止字符串放在单引号中将禁用 heredoc 中的变量替换:

cat > /etc/ip_logging.sh << 'EOF'
[ -z "$plug_event" ]
#other stuff
EOF

将有相同的结果,没有转义的 $和其他 shell 特殊字符

关于linux - shell 脚本 : Quotes Around Variable with\$,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16719760/

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