Я хотел бы выполнить команду, давайте назовем ее abc и добавим в качестве параметра каждое имя файла в текущей папке. Как я мог сделать это в C Shell (или другом языке сценариев)?

2 ответа2

1

Используя csh или tcsh , он будет перебирать все файлы и каталоги в текущем каталоге. Я использовал кавычки вокруг подстановки переменных $i на случай, если в некоторых именах есть пробелы.

foreach i (*)
   abc "$i"
end

Если вы хотите получить только файлы, а не каталоги, используйте тест -f . Здесь я использовал сокращенное выражение if оболочки C.

foreach i (*)
   if (-f "$i") abc "$i"
end
0

Посмотри на Xargs. Если ваша оболочка похожа на мою, следующее должно хорошо работать:

find . -type f -maxdepth 1 | xargs abc

Если вас беспокоят пробелы в именах файлов, см. Комментарий Дэниела Андерссона ниже.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .