如何创建根据命令行开关调用其他脚本的 bash 脚本

Jos*_*osh 2 scripts

我对 bash 非常陌生,需要创建一个脚本来调用另一个脚本,具体取决于所采用的命令行开关。

让我们称它为 stuff.sh

不是stuff.sh --help应该表现得像帮助确实在正常的程序并给出一个列表,用户他可以做什么

  • -a 你可以做这样的事情。
  • -b 你可以做这样的事情。
  • -c 这是非常花哨的东西。

当我用stuff.sh - a它执行脚本时应该做一些事情,假设sudo在它前面调用另一个脚本。

我怎么能那样做?

任何对 bash 不熟悉的人都可以轻松理解的想法吗?

谢谢!

Eri*_*lho 5

#!/bin/bash

function show_help() {
    cat << ENDHELP
-a you can do stuff like that.
-b you can do stuff like that.
-c this is extremely fancy stuff.
ENDHELP
}

case $1 in
    --help)
        show_help
    ;;
    -a)
        sudo /path/to/other/script
    ;;
    -b)
        do_some_stuff
        do_another_stuff
    ;;
    -c)
        do_extremely_fancy_stuff
        do_another_extremely_fancy_stuff
        run_as_many_commands_as_you_want
    ;;
    *)
        echo "Run $0 --help"
    ;;
esac
Run Code Online (Sandbox Code Playgroud)
  • $0 是脚本名称。
  • $1是第一个命令行参数,$2是第二个,依此类推。

阅读 bash联机帮助页以供参考。