В каких случаях [[ ]] не проходит тест, а [ ] завершается успешно для одного и того же теста?

Для меня работает следующее, что означает вызов дополнительной оболочки, которая будет использоваться для запуска команды, устанавливающей переменную среды.

# LC_ALL is set in parent shell
> export LC_ALL=C
> env | grep LC_ALL
LC_ALL=C

# Verify that since we use `su -` the LC_ALL is not preserved
> su - user123 -c '/bin/bash'
user123@026aedc05a97:~$ env | grep LC_ALL
user123@026aedc05a97:~$ exit

# Pass the variable to the extra shell explicitly
> su - user123 -c 'LC_ALL='$LC_ALL' /bin/bash'
# The variable is now set
user123@026aedc05a97:~$ env | grep LC_ALL
LC_ALL=C
user123@026aedc05a97:~$
1
21.10.2019, 14:25
1 ответ

Я добавил в скрипт следующую строку, чтобы найти работающую оболочку:

ps -p $$ > /path/to/some_file

Обнаружена работающая оболочка /bin/sh, которая не поддерживает синтаксис двойных скобок. Двойные скобки поддерживаются только в нескольких оболочках(Источник).

Все кредиты принадлежат ребятам, которые помогли своими комментариями под моим постом.

1
27.01.2020, 23:40

Теги

Похожие вопросы