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 解决方案。但你能控制代码用户将使用什么吗?