복사하여 붙여넣을 때는 명령이 작동하지만 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

관련 정보