echo -e: пробел добавляется перед вторым предложением в < первом предложении > \ n < второе предложение >

В Bash у меня небольшая проблема с командой echo и одной из ее последовательностей -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, но будет исключать пробел после того, как он будет напечатан (и, возможно, также перед ним, если один).

-6
задан 19 January 2018 в 18:09

2 ответа

Просто удалите пробел после \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
4
ответ дан 19 January 2018 в 18:09
echo -e "0 0 * * * ~/cronDaily.sh  
0 0 * * 0 ~/cronWeekly.sh" | crontab

сделает работу. Открывающая цитата позволяет вставлять переносы строк. Конечно, Byte Commanders ответ правильный, и вы должны найти компромисс между удобочитаемостью и ориентацией на синтаксис оболочки.

Редакторы цветных синтаксисов могут помочь сделать источник более читабельным и выделить специальные символы, такие как '\ n', что улучшит решение Byte Commanders. Но есть ли у вас контроль над тем, что будет использовать пользователь кода?

1
ответ дан 19 January 2018 в 18:09

Другие вопросы по тегам:

Похожие вопросы: