如何让EOT在bash中使用IF ELSE语句?

时间:2016-09-06 17:35:00

标签: bash proxy environment-variables eof heredoc

我正在尝试创建一个脚本,如果/ 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

2 个答案:

答案 0 :(得分:3)

如果要缩进结束标记<<-或将<<移至第一列,请使用EOT代替EOT

请看一下:http://www.shellcheck.net/

答案 1 :(得分:0)

您也可以将此文档移至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所解释的那样缩进这里的文档。