LINUX.ORG.RU

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


0

0

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

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

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

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

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

bash script.sh \*.*

bash script.sh "*.*"

anonymous ()

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

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 ★★ ()

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

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

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

kingstone ()

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

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

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

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

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