Может ли синтаксики переменных заменетелей быть единой?

Интеграция оболочки iTerm 2 позволяет определять правила для профилей и автоматически переключаться между ними, учитывая результат выполнения правил. https://iterm2.com/shell_integration.html

0
06.11.2018, 22:28
1 ответ

Вы можете , но не при цитировании расширения (, поскольку двойные -кавычки сохраняют буквальное значение большинства "специальных символов", включая фигурные скобки):

rm $s_{a,e}/$domain.conf

постепенно расширяется до:

rm $s_a/$domain.conf $s_e/$domain.conf

, а затем к соответствующим значениям.

Внутри двойных -кавычек фигурные скобки оставляются в покое, поэтому строка расширяется до:

rm (value of $s_){a,e}/(value of $domain).conf

Цитирование предотвращает непреднамеренное расширение, особенно разделение слов и расширение имени файла. Вы можете обойти разделение слов, отключив $IFS, и можете обойти расширение имени файла с помощью set -f, объединив его с:

oIFS=$IFS
IFS=
set -f
rm $s_{a,e}/$domain.conf 2>/dev/null
IFS=$oIFS
set +f
5
28.01.2020, 02:16

Теги

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