sed + установить значение в двойных кавычках

man nohup

«Если стандартный ввод — это терминал, перенаправить его из нечитаемого файла».

Следовательно,

nohup: ignoring input and appending output to 'nohup.out'

Он делает то, что должен, несмотря на записи OPTION , поэтому ввод отбрасывается.

ТАКЖЕ Похоже, вы излишне используете перенаправление. nohup уже создает для вас nohup.out и, если все работает нормально, stderr также должен быть перенаправлен туда.

Ура!

0
22.10.2019, 17:17
3 ответа

Использовать адресацию sedна RE:

sed -e '/^OPTIONS=/s/.*/OPTIONS="-4"/' /etc/sysconfig/chronyd

Среднее:

  • В строках, соответствующих ^OPTIONS=(, начинающихся с OPTION=),
    • замените все на OPTIONS="-4".
1
28.01.2020, 02:17

Попробуйте это,

sed  's/^OPTIONS=.*/OPTIONS="-4"/g' /etc/sysconfig/chronyd

или

sed  's/\(^OPTIONS="\).*"/\1-4"/g' /etc/sysconfig/chronyd
1
28.01.2020, 02:17

Следующее должно работать,

  • Если spaceявляется , необязательным ,
sed -r 's/OPTIONS="[[:space:]]?"/OPTIONS="-4"/g'
  • Если spaceравно , по крайней мере один или несколько ,
sed -r 's/OPTIONS="[[:space:]]+"/OPTIONS="-4"/g'

Или обе возможности [Как упомянул @AdminBee],

  • Если spaceравно , по крайней мере один или несколько или необязательны ,
sed -r 's/OPTIONS="[[:space:]]*"/OPTIONS="-4"/g'

Например,

[arif@arif]$ printf '# Command-line options for chronyd\nOPTIONS=" "\n'
# Command-line options for chronyd
OPTIONS=" "
[arif@arif]$ printf '# Command-line options for chronyd\nOPTIONS=" "\n' | sed -r 's/OPTIONS="[[:space:]]"/OPTIONS="-4"/g'
# Command-line options for chronyd
OPTIONS="-4"
2
28.01.2020, 02:17

Теги

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