
Windows 바탕 화면 바로 가기 대상 필드에 있는 다음 단일 명령줄은 주소를 ping하고 타임스탬프를 표시합니다.
C:\Windows\System32\bash.exe -c "ping 1.0.0.1 | while read line; do echo `date` - $line; done"
예제 출력:
Fri Nov 27 14:08:05 CST 2020 - PING 1.0.0.1 (1.0.0.1) 56(84) bytes of data.
Fri Nov 27 14:08:05 CST 2020 - 64 bytes from 1.0.0.1: icmp_seq=1 ttl=58 time=26.7 ms
Fri Nov 27 14:08:06 CST 2020 - 64 bytes from 1.0.0.1: icmp_seq=2 ttl=58 time=35.5 ms
Fri Nov 27 14:08:07 CST 2020 - 64 bytes from 1.0.0.1: icmp_seq=3 ttl=58 time=42.0 ms
나는 읽었다여기bash 대신 wsl.exe를 사용해야 하지만 동등한 명령을 만드는 방법을 알 수 없습니다.
(Windows 10에서 이 작업을 수행하려면 Windows 10에서 "Linux용 Windows 하위 시스템"을 활성화하고 Microsoft Store에서 Ubuntu를 설치해야 합니다.이 HTG 기사.)
답변1
귀하가 연결한 답변이 잘못되었습니다. bash.exe
더 이상 사용되지 않으며 귀하의 경우에는 필수입니다.
그 이유는 WSL에는 명령 매개변수, 단일 명령만 허용하므로 다음 명령줄은 작동하지 않는 단일 호출로 해석됩니다.
내장 셸 명령을 사용해도 작동하지 않습니다.
bash
즉, 예를 들어 명령을 사용해야 합니다 . WSL에 둘 이상의 Linux 배포판이 설치된 경우 bash
기본값으로 정의된 배포판의 셸을 호출합니다.
답변2
나는 읽었다여기bash 대신 wsl.exe를 사용해야 하지만 동등한 명령을 만드는 방법을 알 수 없습니다.
그냥 bash.exe -c
다음으로 바꾸세요 wsl.exe --exec bash -c
:
1
C:\Windows\System32\wsl.exe --exec bash -c
"ping 1.0.0.1 | while read line; do echo `date` - $line; done"
이것은 잘 작동합니다cmd.exe
. 나는 그것을 시도하는 것이 좋습니다!
2
출력 예:
date - PING 1.0.0.1 (1.0.0.1) 56(84) bytes of data.
date - 64 bytes from 1.0.0.1: icmp_seq=1 ttl=56 time=4.58 ms
date - 64 bytes from 1.0.0.1: icmp_seq=2 ttl=56 time=4.31 ms
^C
나는 며칠 전에 이 책을 읽으면서 이것을 스스로 배웠습니다.이 게시물.
당신 말이 맞아요bash.exe
더 이상 사용되지 않습니다
(와 wslconfig.exe
같이 lxrun.exe
).
참고자료
1
에서 는 입니다 wsl.exe --exec bash -c
.bash
리눅스
명령과윈도우가 아니라 bash.exe
명령. – 로
교체하려고 시도하면 출력이 없다는 것을 (간접적으로) 분명하게 알 수 있습니다.bash
bash.exe
2
명령줄을 열려면(관리자 권한으로) WinKey+ 를 누르고 r를 입력한 cmd
후
Ctrl+를 누른 상태 Shift에서 을 누릅니다 Enter. (그런 다음 + , + 를
사용하여 명령을 복사하여 붙여넣습니다 .)CtrlcCtrlv