LINUX.ORG.RU

как в bash в качестве параметра передать маску файла


0

0

Люди добрые помогите разобраться с Bash надо мне в качестве парметра скрипту передать маску файла пишу в ком строке: bash script.sh *.*

в первой строчке скрипта пишу echo $@

в итоге оно мне выводит не *.*, а список файлов в текщуей директории. Я ему конечно признателен, но неплохо бы узнать, как получить эту самую маску файла

P.S.:заранее спасибо за помощь

Ответ на: комментарий от kingstone

andrey@silverblood (~/myzlo)$ echo "*.*"      
*.*
andrey@silverblood (~/myzlo)$ x() { echo $@; }
andrey@silverblood (~/myzlo)$ x "*.*"         
ss.sh
andrey@silverblood (~/myzlo)$ ls
ss.sh  to_download  wget-log
andrey@silverblood (~/myzlo)$ 

т.е. оно передает правильно, но в твоем скрипте используется неправильно

generatorglukoff ★★
()
Ответ на: комментарий от generatorglukoff

Ну это ясно, но в какой переменной хранится это заветное *.*, если в $@ хранится список файлов?

как в скрипте получить *.*, а не список файлов?

kingstone
() автор топика
Ответ на: комментарий от kingstone

тебе же показали что в $@ хранится заветное *.*

но для этого его нужно использовать так "$@" иначе присходит еще одно расширение

почитай про quoting в шелле

dilmah ★★★★★
()
Ответ на: комментарий от generatorglukoff

>andrey@silverblood (~/myzlo)$ x() { echo "$@"; }

>andrey@silverblood (~/myzlo)$ x "*.*"

>*.*

>andrey@silverblood (~/myzlo)$

спасибо большое, разобрался

kingstone
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.