码迷,mamicode.com
首页 > 系统相关 > 详细

shell cat EOF 变量自动解析问题

时间:2019-05-09 13:47:13      阅读:525      评论:0      收藏:0      [点我收藏+]

标签:code   shell   自动   not found   tar zxvf   roo   转义字符   解决办法   https   

使用如下shell安装node时,一直提示 command not found

wget https://mirrors.huaweicloud.com/nodejs/latest-v8.x/node-v8.16.0-linux-x64.tar.gz
tar zxvf node-v8.16.0.tar.gz -C /usr/local
cd /usr/local/
mv node* node
cat <<EOF> /etc/profile.d/node.sh
export NODE_HOME=/usr/local/node
export PATH=$NODE_HOME/bin:$PATH
EOF

source /etc/profile

去检查 node.sh 才发现变量被解析了。

#cat /etc/profile.d/node.sh 
export NODE_HOME=/usr/local/node
export PATH=/usr/local/node/bin:/usr/local/node/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/redis/bin/:/root/bin

两个解决办法:

  1. 加转义字符,适用于变量少的情况
[root@elk ~]# cat <<EOF> /etc/profile.d/node.sh
> export NODE_HOME=/usr/local/node
> export PATH=\$NODE_HOME/bin:\$PATH
> EOF
[root@elk ~]# cat /etc/profile.d/node.sh 
export NODE_HOME=/usr/local/node
export PATH=$NODE_HOME/bin:$PATH

? 2. EOF 加反斜杠,或用单引号、双引号包围 。适用变量多的情况

[root@elk ~]# cat <<'EOF'> /etc/profile.d/node.sh
> export NODE_HOME=/usr/local/node
> export PATH=$NODE_HOME/bin:$PATH
> EOF
[root@elk ~]# cat /etc/profile.d/node.sh 
export NODE_HOME=/usr/local/node
export PATH=$NODE_HOME/bin:$PATH

shell cat EOF 变量自动解析问题

标签:code   shell   自动   not found   tar zxvf   roo   转义字符   解决办法   https   

原文地址:https://www.cnblogs.com/fsckzy/p/10837831.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!