linux cat EOF 變數自動解析問題

2021-09-25 21:56:17 字數 1206 閱讀 6163

使用如下shell安裝node時,一直提示 command not found

wget 

tar zxvf node-v8.16.0.tar.gz -c /usr/local

cd /usr/local/

mv node* node

cat export node_home=/usr/local/node

export path=$node_home/bin:$path

eofsource /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

兩個解決辦法:

加轉義字元,適用於變數少的情況

[root@elk ~]# cat > 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

自動變數與非自動變數

自動變數 區域性變數,如不作專門說明為靜態變數,都是動態分配儲存空間,儲存在動態儲存區中。這種變數叫自動變數。這種變數只在定義它們的時候才建立,在定義它們的函式返回時系統 變數所佔儲存空間。對這些變數儲存空間的分配和 是由系統自動完成的,所以也叫自動變數。一般情況下,不作專門說明的區域性變數,均是自...

自動變數與非自動變數

自動變數 區域性變數 如不作專門說明為 靜態變數 都是動態分配儲存空間,儲存在動態儲存區中。這種變數叫自動變數。這種變數只在定義它們的時候才建立,在定義它們的 函式 返回時系統 變數所佔儲存空間。對這些變數儲存空間的分配和 是由系統自動完成的,所以也叫自動變數。一般情況下,不作專門說明的區域性變數,...

自動變數與非自動變數

自動變數與非自動變數 2012 05 28 10 27 52 自動變數 區域性變數,如不作專門說明為靜態變數,都是動態分配儲存空間,儲存在動態儲存區中。這種變數叫自動變數。這種變數只在定義它們的時候才建立,在定義它們的函式返回時系統 變數所佔儲存空間。對這些變數儲存空間的分配和 是由系統自動完成的,...