Раздел "{f// /_}означает заменить каждый пробел с подчеркиванием. Это использует расширение параметра Bash, переменная, fопределенная в переменной, for f in *\ *;будет проходить при каждом совпадении расширения оболочки (globbing). Каждый раз, когда найденное имя файла становится значением $f.
Расширение параметра работает со //значением каждого вхождения следующего символа //(пробел в этом примере), должен быть заменен символом после /(подчеркивание в этом примере).
Ответы:
Это шаблон замены с использованием
bash
расширения параметров.В
${f// /_}
:Двойная косая черта
//
предназначена для замены всех вхождений пробела на_
: если поставить одну косую черту/
, будет заменена только первая пробелТам есть место, потому что вы заменяете пространство (подчеркиванием)
Итак, шаблон в основном такой:
Проверьте,
man bash
чтобы получить больше идей.Чтобы попасть в
Parameter Expansion
разделman bash
сразу:источник
Раздел
"{f// /_}
означает заменить каждый пробел с подчеркиванием. Это использует расширение параметра Bash, переменная,f
определенная в переменной,for f in *\ *;
будет проходить при каждом совпадении расширения оболочки (globbing). Каждый раз, когда найденное имя файла становится значением$f
.Расширение параметра работает со
//
значением каждого вхождения следующего символа//
(пробел в этом примере), должен быть заменен символом после/
(подчеркивание в этом примере).источник