Немного глупо получать список mp3-файлов, передавать их в echo
, чтобы он мог распечатать их, разделенные пробелами, затем передавать этот вывод по каналу, читать его, разделять на пробел/табуляцию/новую строку/NUL, а затем присоединиться к |
.
Либо делай:
printf '%s|' *.mp3
Или
files=(*.mp3)
joined=${(j:|:)files}
Если цель состоит в том, чтобы использовать его в качестве шаблона zsh
, вы, вероятно, захотите экранировать подстановочные знаки в именах этих файлов. Это делается с помощью флага раскрытия параметра b
:
pattern="(${(j:|:)${(b@)files}})"
Я нашел ответ... пока я тестировал код в Manjaro, я закомментировал этот необходимый метод, который удаляет разделы и файловые системы на диске перед каждым запуском команды sfdisk:
wipeFilesystems(){
echo "Wiping filesystems on "$dev_block"..."
sfdisk --delete $dev_block
wipefs --all $dev_block
}