2

в командной строке я могу изменить вывод двух команд с

$ diff <(cmd1) <(cmd2)

но если я положу это в сценарии оболочки

$ sh do_two_comands_diff.sh

Это не работает

$ diff <(ls) <(ls -a)
0a1,2
> .
> ..

$ cat > test_diff.sh
diff <(ls) <(ls -a)
^D

$ sh test_diff.sh
test_diff.sh:1: test_diff.sh: Syntax error: "(" unexpected

Я попытался использовать $() вместо () безуспешно. Я знаю, что внутри оболочки иногда нужно делать иначе, чем в консоли, но здесь я понятия не имею. Может ли кто-то быть так любезен, чтобы указать мне правильные ссылки, чтобы узнать, как сделать это правильно в оболочке и почему это происходит?

П.

1 ответ1

5

Обязательно используйте тот же интерпретатор в вашем скрипте, который вы используете в командной строке, предварительно добавив

#!/bin/bash

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .