我有一个具有不同阶段的 bash 程序,例如:
$stage=1
if [ stage -le 1]; then echo "execute stage 1" fi
if [ stage -le 2]; then echo "execute stage 2" fi
if [ stage -le 3]; then echo "execute stage 3" fi
我的代码分阶段计算起来非常耗时。我想要的是执行那些需要的阶段。
我如何才能在 Linux 中从命令终端直接调用第 3 阶段并跳过第 1 阶段和第 2 阶段。
谢谢
答案1
您可能可以使用 case 语句。假设我们创建一个名为的脚本stage.sh
,那么它可能是这样的:
#!/bin/bash
case $1 in
1) echo "stage 1" ;;
2) echo "stage 2" ;;
3) echo "stage 3" ;;
*) echo "unknown stage" ;;
esac
它的作用是,$1
当从命令行调用时,它会获取第一个输入 ( ) 并将其与 case 语句进行匹配。在这里,运行./stage.sh 1
将显示stage 1
,并且./stage.sh 5
将显示,unknown stage
因为没有 case 匹配(因此它将求助于选项*)
)。