在编写脚本使用cat重定向的方式将某用户的变量写到.bash_profile文件的时候发现环境变量全部没有了。
默认输出的内容以$符号开头识别为变量,重定向输出的结果即环境变量的value。如何将$开头的变为字符串输出呢。
查阅文档看到一位大神的回复。答案其实很简单。操作演示下。
错误的方式:
[root@zabbix oci8-2.0.11]# cat >abc<<EOF
> export $PATH=PATH
> EOF
[root@zabbix oci8-2.0.11]# cat abc
export /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin=PATH
正确的方式:
[root@zabbix oci8-2.0.11]# cat >abc<<'EOF'
export $PATH=PATH
EOF[root@zabbix oci8-2.0.11]# cat abc
export $PATH=PATH
完美解决
其实可以是用另一种“\”转译的方式不过 这样更简洁一些。
[root@zabbix oci8-2.0.11]# cat >abc<<EOF
export \$PATH=PATH
EOF[root@zabbix oci8-2.0.11]# cat abc
export $PATH=PATH