Хорошо, мои навыки работы с Unix-скриптами, очевидно, действительно ржавые. Все, что я хочу сделать, это иметь файл с 4 аргументами, которые я хочу передать в скрипт, как если бы они пришли из командной строки. Но странно делать это:
./myscript.sh < mycmds.txt
Кажется, не работает так, как я ожидаю. Содержимое myscript.sh:
cat >> out.txt <<EOF
$1 $2 $3 $4
EOF
Так что, если я запускаю myscript.sh из командной строки следующим образом: ./myscript.sh test1 test2 test3 test4
все отлично работает, и я вижу test1 test2 test3 test4
в файле out.txt. Но если я добавлю test1 test2 test3 test4
в виде строки в файл mycmds.txt, а затем запусту ./mysript.sh < mycmds.txt
, я получу пустую строку в файле out.txt.
Так, что я здесь не так делаю? Как правильно хранить аргументы в файле и передавать их в сценарий, чтобы они обрабатывались так же, как если бы они были получены из командной строки?