man nohup
«Если стандартный ввод — это терминал, перенаправить его из нечитаемого файла».
Следовательно,
nohup: ignoring input and appending output to 'nohup.out'
Он делает то, что должен, несмотря на записи OPTION , поэтому ввод отбрасывается.
ТАКЖЕ Похоже, вы излишне используете перенаправление. nohup уже создает для вас nohup.out и, если все работает нормально, stderr также должен быть перенаправлен туда.
Ура!
Использовать адресацию sed
на RE:
sed -e '/^OPTIONS=/s/.*/OPTIONS="-4"/' /etc/sysconfig/chronyd
Среднее:
^OPTIONS=
(, начинающихся с OPTION=
), OPTIONS="-4"
. Попробуйте это,
sed 's/^OPTIONS=.*/OPTIONS="-4"/g' /etc/sysconfig/chronyd
или
sed 's/\(^OPTIONS="\).*"/\1-4"/g' /etc/sysconfig/chronyd
Следующее должно работать,
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"