函数不在脚本中执行

函数不在脚本中执行

我创建了这个名为 ShellScript.sh 的脚本,该脚本中的内容如下:

#!/bin/sh
# Shell script 

function help {
  echo ""
  echo "./ShellScript.sh {start | stat}"
  echo ""
  echo "These are some commands:"
  echo ""

  # Start command
  echo "start"
  echo "This starts the process"
  echo ""

  # Stat command
  echo "stat"
  echo " abcxyz"
  echo ""
}

但是,在命令行上,当我输入“./ShellScript.sh help”时,没有任何反应。我已经尝试解决这个问题一天了,并且确信我错过了一些小东西,但我不知道它是什么!

答案1

目前还不清楚你的最终目标是什么,但是打电话./ShellScript.sh help就可以了范围脚本的“帮助”;正如 Arkadiusz Drabczyk 评论的那样,ShellScript.sh 所做的就是设置一个函数,然后退出。

看起来好像您正在构建一个选项驱动的脚本来启动或统计进程,在这种情况下,您需要一些“主”级代码来解析参数并调用函数。

例如,将其添加到 ShellScript.sh 的末尾:

case "$1" in
start)
    echo "This starts the process"
    ;;
stat)
    echo "stat"
    echo " abcxyz"
    ;;
help)
    help
    ;;
*)
    echo "usage: $0 start|stat"
    ;;
esac

作为建议,“stat”(对人类而言)与“start”非常相似;考虑“地位”?

答案2

你已经定义了一个函数,但实际上你还没有用它做任何事情。你需要称呼脚本中的该函数。如果这是一种更通用的方法,您想根据脚本的参数调用几个函数之一,只需将其设置为这样(我刚刚显示了其中的一部分,在末尾添加了“$”):

    # Stat command
    echo "stat"
    echo " abcxyz"
    echo ""
}

$1

相关内容