zoukankan      html  css  js  c++  java
  • shell cat EOF 变量自动解析问题

    使用如下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
    
    
  • 相关阅读:
    排序算法
    彩票随机6+1,开发实例
    synchronized关键字以及对象锁和类锁的区别
    shell基础
    easyui+Spring MVC+hibernate = 乐途
    easyui + jdbc 实现简单的数据库管理。
    js map
    struts2 using kindeditor upload pictures (including jmagic compressed images)
    easyui filebox 浏览图片
    easyui datagrid to excel
  • 原文地址:https://www.cnblogs.com/fsckzy/p/10837831.html
Copyright © 2011-2022 走看看