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

unix – “x $VARIABLE”中x的shell脚本用途[复制]

发布时间:2020-12-16 01:11:42 所属栏目:安全 来源:网络整理
导读:参见英文答案 Why do shell script comparisons often use x$VAR = xyes?7个 我正在窥视一些shell脚本 – 在comarison shcu中x的目的是什么 if [ "x$USER" != "x$RUN_AS_USER" ]; then su - $RUN_AS_USER -c "$CATALINA_HOME/bin/startup.sh" else $CATALINA
参见英文答案 > Why do shell script comparisons often use x$VAR = xyes?7个
我正在窥视一些shell脚本 – 在comarison shcu中x的目的是什么
if [ "x$USER" != "x$RUN_AS_USER" ]; then
        su - $RUN_AS_USER -c "$CATALINA_HOME/bin/startup.sh"
 else
        $CATALINA_HOME/bin/startup.sh
 fi
如果其中一个变量为空,那么确保在替换中不会得到空字符串是一种技巧.通过在两侧放置x,它只是直接比较变量,但双方总是非空的.

这是一个旧的kludge,当脚本编写为:

if [ x$USER != x$RUN_AS_USER ]

如果你只有$USER并且它是空的那么你可能最终得到

if [  != root ]   # Syntax error

使用x,你得到这个,这是更好的:

if [ x != xroot ]

但是,当引用变量时,x是不必要的,因为引号中的空字符串不会被完全删除.它仍然显示为令牌.从而

if [ "$USER" != "$RUN_AS_USER" ]   # Best

写这个是最好的方法.在两个变量都为空的最坏情况下,你会得到这个有效的声明:

if [ "" != "" ]

(编辑:李大同)

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

    推荐文章
      热点阅读