コピーして貼り付けるとコマンドは機能しますが、bashスクリプトでは機能しませんか?

コピーして貼り付けるとコマンドは機能しますが、bashスクリプトでは機能しませんか?

WindowsコマンドをLinux Netcatシェルに渡してから、出力を再読み込みしようとします。

これまで私は以下を持っています:

cat <( printf 'ipconfig\n' )| nc -v 137.148.70.243 443

素晴らしいLinux端末にコピーして貼り付けると、接続されているWindowsシステムからIP情報が取得されます。

ただし、bashを介して同じコマンドを呼び出そうとすると、次のエラーが発生します。

./DumpIP.sh: line n: syntax error near unexpected token `('

何を提供しますか?

編集する

だから私が試した場合:

#!/bin/sh
cat <( printf 'ipconfig\n' )| nc -l

わかりました。

./DumpCreds.sh: line 2: syntax error near unexpected token `('
./DumpCreds.sh: line 2: `cat <( printf 'ipconfig\n' )| nc -l'

ベストアンサー1

問題は、shebang行を呼び出すsh代わりにスクリプトを呼び出すことです。bash構文規則は、bashism<(command)が存在しないときにPOSIXシェル(symlinkのsh場合)をエミュレートするbashismを渡すことです。/bin/sh/bin/bash

おすすめ記事