У меня проблема с сценарием оболочки с параметрами. Эта команда работает непосредственно на Linux работает:Вывод параметров командной строки
comm -13 <(sort /tmp/f1.txt) <(sort /tmp/f2.txt) > /tmp/f3.txt
Если я пытаюсь запустить этот скрипт с помощью этой команды отправки параметров, и я получаю ошибку ниже:
test.sh: line 6: syntax error near unexpected token `('
'est.sh: line 6: `comm -13 <(sort $1) <(sort $2) > $3
Вот моя оболочка код:
#!/bin/bash
comm -13 <(sort $1) <(sort $2) > $3
я запустить его с помощью следующей команды:
sh test.sh /tmp/f1.txt /tmp/f2.txt /tmp/f3.txt
У меня кончились идеи, что может быть неправильным. Пожалуйста, помогите.
Спасибо, -Andrey
'sh' не' 'bash' <(...)' является особенностью Баш. Не используйте 'sh' для запуска скрипта. Используйте 'bash'. –
Причина, по всей видимости, заключается в том, что любой 'sh' в вашей системе означает, что он не поддерживает [замену процесса] (https://www.gnu.org/software/bash/manual/html_node/Process-Substitution.html#Process- Замена). Почему вы положили '#!/Bin/bash' в свой скрипт и используете' sh' для его выполнения? Смотрите это: https://www.gnu.org/software/bash/manual/html_node/Major-Differences-From-The-Bourne-Shell.html –
Это сработало. Большое спасибо, ребята. – Andrey