[Comm] Shell quoting and $*

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Пт Апр 14 21:24:57 MSD 2006


On Fri, Apr 14, 2006 at 06:28:48PM +0400, Vitaly Ostanin wrote:
> Здравствуйте.
>
> Скажите, пожалуйста, как можно в shell скрипте экранировать
> аргументы при передаче в программе? Да, вопрос тупой, однако:
>
> $ touch 'test 1'
> $ touch 'test 2'
> $ echo 'ls $*' > test.sh

	ls "$@"

> $ chmod +x test.sh
> $ ./test1.sh "test 1" "test 2"
> ls: test: No such file or directory
> ls: 1: No such file or directory
> ls: test: No such file or directory
> ls: 2: No such file or directory
>
> Следующий вариант скрипта тоже не работает:
> unset $arg
> while [ "$1" != "" ]; do
>    arg="$arg '$1'"
>    shift
> done;
> ls $arg

	for arg; do
		: "$arg"
	done

> $ ./test.sh "test 1" "test 2"
> ls: 'test: No such file or directory
> ls: 1': No such file or directory
> ls: 'test: No such file or directory
> ls: 2': No such file or directory
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/community/attachments/20060414/974cda99/attachment-0003.bin>


Подробная информация о списке рассылки community