Что наиболее важно для поведения старых скриптов, поведение с set -e
немного изменилось, среди прочего для (...)
, [[...]]
и ((...))
.
Говорят, что новое поведение задокументировано в руководстве.
Например:
$ bash3 -ec '(false); echo $?'
1
$ bash4 -ec '(false); echo $?'
$
История присутствует не во всех оболочках. Вам нужно запустить оболочку с историей вроде bash
. Для этого просто введите имя оболочки, например
bash
, или полный путь к исполняемому файлу, например
/bin/bash
Похоже, что ваша оболочка входа в систему - /bin/sh
. В Ubuntu это оболочка, предназначенная для написания сценариев, в ней нет удобной функции редактирования командной строки, такой как история. Чтобы получить нормальную оболочку командной строки, измените оболочку входа в систему на bash или zsh:
chsh -s /bin/zsh
или
chsh -s /bin/bash
Если на машине есть ограничения, которые не позволяют вам изменить оболочку входа в систему, вы можете указать sh
выполнять bash или zsh при входе в систему. Смотрите как я могу использовать bash в качестве оболочки входа в систему, когда мой системный администратор не разрешает мне ее менять