Я пытаюсь сделать скрипт для добавления всех файлов, заканчивающихся .hash, для проверки md5deep. Файлы с пространством в их имени, похоже, нарушают этот скрипт.Экранирование пространства в скрипте bash
#!/bin/bash
XVAR=""
for f in *.hash
do
XVAR="$XVAR -x $f "
done
md5deep -e $XVAR -r *
Всякий раз, когда я запустить сценарий с файлом под названием "O S.hash" я хотел бы получить
O: No such file or directory
Если я изменить XVAR="$XVAR -x $f "
к XVAR="$XVAR -x \'$f\' "
или XVAR="$XVAR -x \"$f\" "
md5deep будет пронизывают вход как "O вместо
"O: No such file or directory
эхо-сигнал переменной в сценарии показывает XVAR как -x 'O S.hash'
или -x "O S.hash"
ручной ввод команды в оболочке, таких как md5deep -e -x "O S.hash" -r *
работает, но если его в сценарии команда, кажется, сломать
Если есть подкаталоги, содержащие файлы .hash, это приведет к посторонним файлам, указанным в командной строке. –
Да, просто добавьте '-maxdepth 1'. –
работает отлично :) – anselm