Описание тега sh
Использовать $^массив
.
Получается массив, в своего рода бандажа расширение массива. Как и в, когда а=(Foo бар баз)
, $^это
будет немного похоже на {фу,бар,баз}
.
$ а=(Foo бар Базом)
$ Эхо префикс${^а}суффикс
prefixfoosuffix prefixbarsuffix prefixbazsuffix
Для мультиплексирования массивов:
$ а=(1 2 3) В=(А Б)
$ эхо $^$в^б
1а 1в 1С 2а 2в 2С 3А 3В 3С
Естественно, если префикс или суффикс оболочки содержат специальные символы (например ;
то, что отделяет команды или пространство, что отдельные слова, или $"'&*[?~
...), они должны быть указаны:
Эхо 'П Р Е Ф и Х '$^а' с у ф ф и Х'
так же, как для хсг
'S (и Баш, КШ, ЗШ тут):
Эхо 'П Р Е Ф и Х '{фу,бар,баз}' с у ф ф и Х'
$^а
сам не должен быть в кавычках, в"Foo${^а} - бар"
будет расширяться как одно слово. Один случай, когда вы хотели $^массива
в кавычки, так же, как для $массив
- это когда вы хотите сохранить пустые элементы. Затем, вам нужно, чтобы цитировать массив расширения и использовать (@)
флаг или "${массив[@]}"
синтаксис (напоминающий Борн Шелл "$@"
):
$ массив=(х ")
$ е '<%$массив s>\п' # пустеет удалены
<х>
$ е '<е %>\N' в "$массив" # массив АРМ соединены с пробелами
<х >
$ е '<%S>У\П' "${(@)массива}" # пустеет сохранились
<х>
<>
$ е '<%S>У\П' "$массив[@]" # пустеет сохранились
<х>
<>
$ е '<%массив s>\п' ^$$^массив # пустые удалены
<ХХ>
<х>
<х>
$ е '<%S>А\Н' "^$Array массив$^" # конкатенация массивов зарегистрирован
<х х >
$ е '<%S>У\П' "$^массив [@]$массив^[@]" мультиплексирование # со стеклотарой сохранились
<ХХ>
<х>
<х>
<>