При запуске ./test2 'a b c'
мы получаем:
$1=a b c
Таким образом, последняя строка становится:
test1 a b c
И когда запускается test1
, мы получаем:
$1=a
$2=b
$3=c
То есть аргументы, передаваемые test1
, не заключены в кавычки, и, следовательно, они становятся тремя аргументами, а не одним.
Чтобы передать test1
один аргумент, просто заключите переменную в двойные кавычки. То есть замените последнюю строку в test2
на:
./test1 "$letterlist"
Обратите внимание: я также добавил ./
, чтобы указать путь к исполняемому файлу, поскольку не рекомендуется иметь .
в $PATH
.