[bash] Bash 백틱에 해당하는 일괄 처리

Bash로 작업 할 때 다음과 같이 한 명령의 출력을 다른 명령에 넣을 수 있습니다.

my_command `echo Test`

다음과 같을 것입니다.

my_command Test

(분명히 이것은 비실용적 인 예일뿐입니다.)

Batch에서 똑같은 일을 할 수 있는지 궁금합니다.



답변

먼저 출력을 파일로 리디렉션하면됩니다. 예를 들면 :

echo zz > bla.txt
set /p VV=<bla.txt
echo %VV%


답변

cmd.exe 스크립트를 다음 for /f명령 과 함께 사용하여 유사한 기능을 얻을 수 있습니다 .

for /f "usebackq tokens=*" %%a in (`echo Test`) do my_command %%a

예, 그것은 다소 불명확하지만 (가장 적게 말하면) 거기에 있습니다.

for /?피투성이의 세부 사항을 참조 하십시오.

사이드 노트 : echofor /f“명령 에서 백틱 안에 ” ” 를 사용 하는 것은에 대한 내부 명령 cmd.exe /c echo Test이기 때문에 ” “를 사용하여 수행해야한다고 생각 했지만 더 자연스러운 방식으로 작동합니다. Windows 배치 스크립트는 항상 저를 놀라게합니다 (하지만 일반적으로 좋은 방식은 아닙니다).echocmd.exe


답변

“for”명령에 대한 문서를 읽으십시오. for /?

슬프게도 직접 ​​확인하기 위해 Windows에 로그인하지 않았지만 다음과 같이 원하는 내용을 대략적으로 확인할 수 있습니다.

for /F %i in ('echo Test') do my_command %i


답변

항상 Windows 내 에서 Bash를 실행할 수 있습니다. 나는 항상 MSYS로 그것을한다 ( Cygwin 보다 훨씬 더 효율적이다 ).


답변

아마도 나는 표준 for /f방법 의 구문을 망쳐 놓고 있을지도 모르지만 , &&와 | 의 한계에서 백틱 내에서 for /f문제가 발생합니다. 임의의 복잡성 명령을 처리하기 위해 평소에서 약간의 수정이 가능합니다.

SET VV=some_command -many -arguments && another_command -requiring -the-other -command | handling_of_output | more_handling
for /f "usebackq tokens=*" %%a in (`%VV%`) do mycommand %%a

전체 및 복잡한 명령을 변수에 먼저 넣은 다음 복잡한 명령을 for 루프의 한계에 직접 넣는 대신 한계에 변수에 대한 참조를 넣으면 구문 해석 문제를 피할 수 있습니다. 현재 VV위의 예 에서 변수로 설정 한 정확한 명령을 사용 된 위치에 복사 %VV%하면 구문 오류가 발생합니다.


답변