
だからこれは奇妙です。コマンドを手動で実行すると、すべてがうまく機能しますが、同じコマンドを使用してスクリプトを実行すると、奇妙なエラー出力が表示されます。
これが私が実行するものです:
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
2つのループコマンドについて。
私はここに初めて来たので、アドバイスをお願いします。
答え1
{001..005}
bash機能ですが、shを使用してスクリプトを実行しています。Ubuntuでは、shはbashではなくdashです。
sh script.sh
したがって、スクリプトの先頭にスクリプトがあるため、スクリプトを使用または実行しないbash script.sh
でください。./script.sh
#!/bin/bash