ping
함수가 하나만 있는 bash 함수라는 파일이 있습니다 .
#!/usr/bin/env bash
ping() {
ping -c 1 $i.local
}
이 파일은 bash라는 다른 파일에 의해 로드되며 pinger
ping 기능을 사용하여 여러 원격 컴퓨터에 연결을 시도합니다.
#!/usr/bin/env bash
. /home/ping #load ping function
REMOTES=('remote1' 'remote2' 'remote3')
for i in "${REMOTES[@]}"; do
ping $i
done
실행하면 ./pinger
I할 때까지 멈춥니다. 명령줄을 수동으로 CTRL-C
입력하면 ping -c 1 remote1.local
원격 컴퓨터에 성공적으로 ping을 보낼 수 있습니다. 스크립트에 어떤 문제가 있나요?
편집: 함수 이름을 "ping"으로 지정하는 데 문제가 있는 것으로 나타났습니다. 함수 이름이 다른 것으로 지정되면 제대로 작동하는 것 같습니다.
답변1
문제는 함수 이름을 "ping"으로 지정하는 데 있다는 것을 알았습니다. 함수 이름이 다른 것으로 지정되면 제대로 작동하는 것 같습니다.
#!/usr/bin/env bash
pingRemote() {
ping -c 1 $i.local
}
.
#!/usr/bin/env bash
. /home/ping #load ping function
REMOTES=('remote1' 'remote2' 'remote3')
for i in "${REMOTES[@]}"; do
pingRemote $i
done