用EOF,EOT,EOL追加多行制表符分隔文本形式bash脚本
问题描述:
我想在特定字符串出现后插入多行文本。 预期的输出是:用EOF,EOT,EOL追加多行制表符分隔文本形式bash脚本
configuration options:
<tab>option 1
<tab>option 2
<tab>option 3
<tab>option 4
<tab>option 5
<tab>option 6
<tab>option 7
<tab>option 8
<tab>option 9
<tab>option 10
<tab>option 11
<tab>option 12
除了从所述第一所有线与制表符分隔。 我不想用几个echo命令来做到这一点。 我更喜欢EOF,EOT,EOL,但是这些不写标签。
目前我使用的是:
cat >> /etc/conf/conf.conf <<-EOF
<tab>configuration options
<tab><tab>option 1
<tab><tab>option 2
<tab><tab>option 3
<tab><tab>option 4
<tab><tab>option 5
<tab><tab>option 6
<tab><tab>option 7
<tab><tab>option 8
<tab><tab>option 9
<tab><tab>option 10
<tab><tab>option 11
<tab><tab>option 12
EOF
但第二个标签被忽略,不写我的文件。
答
从该行中删除短划线(-
):
cat >> /etc/conf/conf.conf <<-EOF
而,也许,使用更好的名称为EOF:
cat >> /etc/conf/conf.conf <<_list_of_options_
configuration options
<tab>option 1
<tab>option 2
<tab>option 3
<tab>option 4
<tab>option 5
<tab>option 6
<tab>option 7
<tab>option 8
<tab>option 9
<tab>option 10
<tab>option 11
<tab>option 12
_list_of_options_
答
bash允许下面的语法中,类似于EOF其中在单引号的字符串不是在所有修改:
cat >> /etc/conf/conf.conf <<<'configuration options
<tab>option 1
<tab>option 2
<tab>option 3
<tab>option 4
'
答
其实我发现它作为上述答案的组合: 为了保持标签分隔符,我不得不删除“ - ”前EOF,并从每行中删除一个标签:
cat >> /etc/conf/conf.conf <<EOF
configuration options
<tab>option 1
<tab>option 2
<tab>option 3
<tab>option 4
<tab>option 5
<tab>option 6
<tab>option 7
<tab>option 8
<tab>option 9
<tab>option 10
<tab>option 11
EOF
什么是预期的输出? –
提供最少的输入和可验证的预期输出。 – Inian