URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 8438
[ Назад ]

Исходное сообщение
"Помогите разобраться со звёздочкой (shell)"

Отправлено openda , 17-Сен-09 23:06 
Доброго времени суток!

Есть такой скрипт (точнее часть скрипта:) ):
#!/bin/bash
echo "$1"
for file in $1                    
  do
   echo "$file"
done
exit 0

Если в качестве параметра скрипту передать "*" то будет обработан только первый файл в каталоге и echo "$1" выводит имя только первого файла, хотя в терминале "echo *" выводит список всех файлов в каталоге. Как можно использовать звёздочку в качестве параметра скрипта, чтобы обрабатывались все файлы и при этом не экранировать звёздочку прямо в командной строке?


Содержание

Сообщения в этом обсуждении
"Помогите разобраться со звёздочкой (shell)"
Отправлено Slavaz , 17-Сен-09 23:46 
>[оверквотинг удален]
>   echo "$file"
> done
>exit 0
>
>Если в качестве параметра скрипту передать "*" то будет обработан только первый
>файл в каталоге и echo "$1" выводит имя только первого файла,
>хотя в терминале "echo *" выводит список всех файлов в каталоге.
>Как можно использовать звёздочку в качестве параметра скрипта, чтобы обрабатывались все
>файлы и при этом не экранировать звёздочку прямо в командной строке?
>

1) замени в скрипте $1 на $@
2) man bash
3) https://www.opennet.ru/docs/HOWTO-RU/Bash-Prog-Intro.html