With awk
:
awk 'NR!=1{print x"-"$0}{x=$0}' file
NR! =1
применяется ко всем строкам, кроме первойprint x"-"$0
вывести значения с тире междуx=$0
установить x
(для следующей итерации)В Bash есть несколько переменных, которые позволяют управлять приглашением:
PROMPT_COMMAND
PS1
PS2
PS3
PS4
В этом конкретном сценарии полезен только код PROMPT_COMMAND
(, выполняемый перед печатью основного приглашения )иPS1
(основного приглашения ).
А переменная ?
позволяет узнать статус выхода последней выполненной команды. Например:
command
if [[ "${?}" == '0' ]]; then
echo 'OK'
else
echo 'ERROR'
fi
Так что вам просто нужно воспользоваться этими удобными функциями:
# Using PROMPT_COMMAND
PROMPT_COMMAND='if [[ "${?}" == "0" ]]; then printf "[OK]"; else printf "[ERROR]"; fi'
# Using PS1
PS1='$(if [[ "${?}" == "0" ]]; then printf "[OK]"; else printf "[ERROR]"; fi)\$ '
Оба способа напечатают что-то вроде этого (, предполагая, что ваше начальное приглашение$
):
[OK]$ false
[ERROR]$ true
[OK]$
Просто замените [OK]
и [ERROR]
нужными смайликами.
Вы можете прочитать раздел Controlling the Prompt руководства Bash, чтобы узнать больше по этой теме.