Bash 스크립트 이상한 동작 - 스크립트가 수동 명령으로 작동하지 않습니다.

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;

이 작업을 수동으로 수행하면 모든 것이 제대로 작동하고 오류도 없으며 명령이 실제 효과를 발휘합니다. 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

관련 정보