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
    
    
  • 相关阅读:
    sublime打开txt文件乱码的问题
    while循环小例
    mongoDB内置文档定义
    WebStorm 10.0.3注册码
    angularjs之ng-mode获取lobject类型里的键值
    前端打印console
    js去掉数组的空字符串
    js数组去重的三种方式的比较
    js数据类型之判断
    Bootstrap中的datetimepicker浅谈
  • 原文地址:https://www.cnblogs.com/fsckzy/p/10837831.html
Copyright © 2011-2022 走看看