В моем проекте у меня есть файл 1.
Содержимое этого файла1 выглядит следующим образом:
HISTSIZE=1000
if [ "$HISTCONTROL" = "ignorespace" ] ; then
export HISTCONTROL=ignoreboth
else
export HISTCONTROL=ignoredups
fi
export PATH USER LOGNAME MAIL
# By default, we want umask to get set.
# Current threshold for system .
Теперь я хочу добавить предложение после:
export PATH USER LOGNAME MAIL
Это предложение
export PROMPT_COMMAND='echo "`date +%Y-%m-%d" "%H:%M:%S`","`who`" >> linshi'
Итак, я написал сценарий cmdRecord.sh:
newLine="export PROMPT_COMMAND='echo \"`date +%Y-%m-%d\" \"%H:%M:%S`\",\"`who`\" >> linshi'"
baseLN="export PATH USER LOGNAME MAIL"
sed -i '/$baseLN/a$newLine' file1
После выполнения: sh cmdRecord.sh, правильное содержимое файла file1 должно быть:
HISTSIZE=1000
if [ "$HISTCONTROL" = "ignorespace" ] ; then
export HISTCONTROL=ignoreboth
else
export HISTCONTROL=ignoredups
fi
export PATH USER LOGNAME MAIL
export PROMPT_COMMAND='echo "`date +%Y-%m-%d" "%H:%M:%S`","`who`" >> linshi'
# By default, we want umask to get set.
# Current threshold for system .
Но, к сожалению, это не удалось, новое предложение не отображается в файле 1.
Я пробовал:
sed -i "/ $ baseLN / a $ addNL"file1
Но команда выполняется в новой строке, результат:
HISTSIZE=1000
if [ "$HISTCONTROL" = "ignorespace" ] ; then
export HISTCONTROL=ignoreboth
else
export HISTCONTROL=ignoredups
fi
export PATH USER LOGNAME MAIL
export PROMPT_COMMAND='echo 2019-07-09 11:45:08,"root pts/0 2019-07-09 11:38 (ln01)" >> linshi'"
# By default, we want umask to get set.
# Current threshold for system .
Новая строка изменена !!Кажется, нет ничего плохого, кто может мне помочь?