Вчера в комментариях к посту про «set -k», задали вопрос про решение задачи. Чтобы понять какие опции включены в оболочке bash через «set», достаточно выполнять команду:



echo $-




В этой команде «$-» представляет текущие опции командной строки.



На экран выведется, что типа такого:



hikmBHs




Это все опции, которые на данный момент включены в оболочке Bash через команду «set». Ну и дальше уже можно искать проблемы с нелогичным поведением при выполнении команд. Каждая буква это опция, вызываешь хелп и смотришь что она означает.



Ну или через скрипт, как мы любим:



if [[ $- == *k* ]]; then

echo "Опция -k установлена."

else

echo "Опция -k не установлена."

fi




Про «$-» мало кто знает, в книжках я про неё никогда не встречал. В оболочке zsh эта штука тоже фурычит. Такие дела.



tags: #bash



💩 @bashdays