Я хочу сохранить вывод команды ls в моем скрипте bash в переменной и использовать каждое имя файла в цикле, но, например, один файл в каталоге имеет имя «Привет мир», когда я variable=$(ls)
«Hello» и «мир» в конечном итоге, как две отдельные записи, и когда я пытаюсь сделатьсохранение вывода команды ls, состоящей из файлов с пробелами в их именах
for i in $variable
do
mv $i ~
done
он показывает ошибку, что файлы «Hello» и «мир» Безразлично» t существует. Есть ли способ получить доступ ко всем файлам в текущем каталоге и выполнить некоторую команду, даже если в их именах есть пробелы.
@ mklement0 Упс, верно, не знаю, как я пропустил это, учитывая, что вопрос был конкретно о именах файлов с пробелами :) Отредактировано. – Doorknob
Это работает, если вы хотите запускать команды в файлах в текущей директории, но я должен перечислить все файлы в одном каталоге и сравнить имена файлов с некоторыми текстовыми файлами ......., поэтому хранение в списке может стать необходимым и каталог также не может быть текущим каталогом. Также, если я попробую s = («Hello world»), каждое слово будет считаться отдельной записью. Как сохранить предложение в списке за одну запись? – user40647
Это будет _still_ сбой, если у вас есть имя файла, начинающееся с '-'. используйте 'mv - * ~' – mata