0

パラメータを指定してシェル スクリプトを実行すると問題が発生します。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

何が間違っているのか、アイデアが尽きてしまいました。手伝ってください。

ありがとう、-アンドレイ

4

1 に答える 1

1

ソリューション:

  1. bashスクリプトので指定したshebangのに、なぜ で呼び出すのshですか? 実行するだけ./test.sh /tmp/f1.txt /tmp/f2.txt /tmp/f3.txt

  2. bash明示的に使用します。bash test.sh /tmp/f1.txt /tmp/f2.txt /tmp/f3.txt

于 2015-06-25T15:49:07.813 に答える