Как zsh расширяет переменные перед передачей в программы?

Перейдите в терминал и в командной строке:

vi /etc/modprobe.d/blacklist.conf

Добавьте следующие строки:

# disable usb storage access 
blacklist usb_storage

Также, чтобы использовать USB-клавиатуру и USB-мышь, удалите следующие строки:

Blacklist Only USB Storage

Сохраните файл и перезагрузите компьютер.

0
17.06.2019, 06:54
1 ответ

Отвечая на мой собственный вопрос --Я заметил, что в сценариях поведение работает так, как ожидалось (параметры не раскрываются даже без кавычек ). Я понял, что проблема, вероятно, была вызвана опцией, поэтому я запустил setoptв своей интерактивной оболочке и в сценарии и сравнил результаты. Я выключал их одну за другой, пока не обнаружил, что setopt noglobsubstдает желаемый эффект. Короче говоря, опция GLOB_SUBSTзаставляет zsh рассматривать все переменные как шаблоны, которые должны быть расширены, если это возможно. Вы можете отключить эту опцию и по-прежнему расширять переменные при необходимости с помощью тильды ~расширения параметра :

.
% setopt noglobsubst
% star=*
% echo $star
*
% echo $~star
readme.txt test.sh
1
28.01.2020, 02:40

Теги

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