所以,这很奇怪。当我手动运行命令时,一切正常,但是当我使用相同的命令运行脚本时,我会得到奇怪的错误输出。
这就是我运行的:
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 是 dash 而不是 bash。
sh script.sh
因此,不要使用butbash script.sh
或什至只是因为脚本开头./script.sh
有 来运行脚本。#!/bin/bash