그래서 이것은 이상합니다. 명령을 수동으로 실행하면 모든 것이 잘 작동하지만 동일한 명령을 사용하여 스크립트를 실행하면 이상한 오류 출력이 나타납니다.
이것이 내가 실행하는 것입니다:
lxc list;
for elem in {001..005}; do lxc stop ubuntu-"$elem"; done;
for elem in {001..005}; do lxc start ubuntu-"$elem"; done;
lxc list;
이 작업을 수동으로 수행하면 모든 것이 제대로 작동하고 오류도 없으며 명령이 실제 효과를 발휘합니다. LXD 시스템이 실제로 중지되었다가 다시 시작됩니다.
그러나 스크립트로 작성하면 다음과 같습니다.
#!/bin/bash
lxc list;
for elem in {001..005}; do lxc stop ubuntu-"$elem"; done;
for elem in {001..005}; do lxc start ubuntu-"$elem"; done;
lxc list;
오류가 발생합니다(아주 정보가 없는 오류입니다. 명령을 실행할 수 있는 컴퓨터를 찾을 수 없는 것 같습니다).
error: not found
error: not found
두 개의 루프 명령에 대해.
저는 여기에 처음 왔기 때문에 조언을 부탁드립니다.
답변1
{001..005}
bash 기능이지만 sh를 사용하여 스크립트를 실행하고 있으며 Ubuntu에서 sh는 bash가 아닌 dash입니다.
sh script.sh
따라서 스크립트 시작 부분에 스크립트가 있다는 이유만으로 스크립트를 사용하거나 실행 bash script.sh
하지 마십시오 ../script.sh
#!/bin/bash