如何让 EOT 处理 bash 中的 IF ELSE 语句?
How do I get EOT to work on IF ELSE statement in bash?
我正在尝试制作一个脚本,如果 /etc/environment 文件当前为空,则启用代理设置,如果文件有文本,则禁用设置。我写了一些代码,但不确定为什么 /etc/environment 文件没有被编辑。我已经删除了我正在使用的实际代理。
任何帮助将不胜感激!
#!/bin/bash
if [ -s /etc/environment ]
then
cat<<EOT >> /etc/environment
http_proxy="blank"
https_proxy="blank"
ftp_proxy="blank"
export http_proxy https_proxy ftp_proxy
EOT
else
> /etc/environment
fi
如果要缩进结束标记 EOT
或将 EOT
移动到第一列,请使用 <<-
而不是 <<
。
您也可以将此处的文档移动到 if
语句本身。
if [ -s /etc/environment ]; then
cat
fi <<EOT >> /etc/environment
http_proxy="blank"
https_proxy="blank"
ftp_proxy="blank"
export http_proxy https_proxy ftp_proxy
EOT
虽然 if
语句 本身 是缩进的,但您仍然想知道如何缩进此处文档,正如 Cyrus 所解释的那样。
我正在尝试制作一个脚本,如果 /etc/environment 文件当前为空,则启用代理设置,如果文件有文本,则禁用设置。我写了一些代码,但不确定为什么 /etc/environment 文件没有被编辑。我已经删除了我正在使用的实际代理。 任何帮助将不胜感激!
#!/bin/bash
if [ -s /etc/environment ]
then
cat<<EOT >> /etc/environment
http_proxy="blank"
https_proxy="blank"
ftp_proxy="blank"
export http_proxy https_proxy ftp_proxy
EOT
else
> /etc/environment
fi
如果要缩进结束标记 EOT
或将 EOT
移动到第一列,请使用 <<-
而不是 <<
。
您也可以将此处的文档移动到 if
语句本身。
if [ -s /etc/environment ]; then
cat
fi <<EOT >> /etc/environment
http_proxy="blank"
https_proxy="blank"
ftp_proxy="blank"
export http_proxy https_proxy ftp_proxy
EOT
虽然 if
语句 本身 是缩进的,但您仍然想知道如何缩进此处文档,正如 Cyrus 所解释的那样。