Как установить дополнительные группы процесса?

Расширения ${var#word}и ${var%word}также работают с массивами:

arr=(/dir/dir1/foo.ssh /dir/dir2/bar.ssh )
arr2=("${arr[@]##*/}") 
arr2=("${arr2[@]%.ssh}") 
printf "%s\n" "${arr2[@]}"

печатает fooи bar.

Затем эта командная подстановка ls | xargsне работает с именами файлов, содержащими пробелы (даже безxargs)или кавычек (из-заxargs).

На самом деле вы можете расширить glob из переменной, только не заключайте ее в кавычки. Вот так:

array=( $1 )

(Хотя IFSпо-прежнему имеет значение, поэтому шаблоны с пробелами будут ломаться, если сначала не установить его на пустую строку.)

Хотя, если вы просто ищете файлы с именами, оканчивающимися на .ssh, вы можете просто передать каталог в качестве аргумента и подстановку для *.sshв скрипте:

array=( "$1"/*.ssh )
0
12.09.2021, 20:03
0 ответов

Теги

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