1

次の行を持つ ssh を使用して、リモート マシン (両方のマシンで bash を使用) でスクリプトを実行しようとしています。

cd /home/invitado/
rm -r !(Desktop|Downloads|Videos|Pictures)

を実行するssh hostname './remove'と、次のエラーが表示されます。

予期しないトークン `(' 付近の構文エラー

この行をスクリプトに追加しようとしました

shopt -s extglob

しかし、私はまだ同じエラーが発生しているので、どうすればよいですか? ご協力いただきありがとうございます。

4

1 に答える 1

1

shopt -s extglob前にする必要がありますrm -r !(Desktop|Downloads|Videos|Pictures)

確認するには、 をextglob実行するだけで の元の値を確認しshoptます。

注: 私の場合、rmシェルから直接コマンドを実行したときにその値が設定されました。しかし、スクリプトに入れると失敗しました。対話型シェルから実行すると、extglob がデフォルトで設定されることがわかりました。& スクリプト内で実行する場合、デフォルトで無効になっています。

于 2012-11-09T05:33:18.537 に答える