echo -e:在第二句之前添加一个空格\n

echo -e:在第二句之前添加一个空格\n

echo在 Bash 中,我在使用命令及其某个序列时遇到了小麻烦-e:在第二个句子前添加了一个空格<first sentence> \n <second sentence>


这是我的命令:

echo -e "0 0 * * * ~/cronDaily.sh \n 0 0 * * 0 ~/cronWeekly.sh" | crontab

这是我当前的状态(打印到 crontab 中的内容):

0 0 * * * ~/cronDaily.sh
 0 0 * * 0 ~/cronWeekly.sh

这是 crontab 中所需的状态:

0 0 * * * ~/cronDaily.sh
0 0 * * 0 ~/cronWeekly.sh

执行完/n之后出现空格怎么办?

编辑:我正在考虑删除后面的空格,\n但是这会使代码读起来不太舒服,我更喜欢一个可以保留它的解决方案,也许是一些否定组合,一些位于后面\n但否定后面空格的占位符,以防止打印(如果有的话,也可能是前面的空格)。

答案1

\n只需删除(换行符转义字符)后的空格即可:

echo -e "0 0 * * * ~/cronDaily.sh \n0 0 * * 0 ~/cronWeekly.sh" | crontab

#                                  /\
#                                 here

为了满足你的审美,你也可以把它分成两个echo部分:

{ echo "0 0 * * * ~/cronDaily.sh" ; echo "0 0 * * 0 ~/cronWeekly.sh" ; } | crontab

答案2

echo -e "0 0 * * * ~/cronDaily.sh  
0 0 * * 0 ~/cronWeekly.sh" | crontab

就可以了。开头的引号允许您插入换行符。当然,Byte Commanders 的答案是正确的,您必须在可读性和 shell 语法方向之间做出权衡。

语法着色编辑器可能有助于使源代码更具可读性,并突出显示“\n”等特殊字符,这将进一步改善 Byte Commanders 解决方案。但你能控制代码用户将使用什么吗?

相关内容