Linux 这个bash语法是什么意思?(特写:案例,执行官)

Linux 这个bash语法是什么意思?(特写:案例,执行官),linux,bash,Linux,Bash,这个bash脚本的目的是什么?(这是较大脚本的一部分。) 一个相关问题: 我不知道任何bash脚本,我会这么说 查找参数数是否大于0 如果是,它将查看第一个参数 如果它以-开头,它什么也不做 否则,它将作为单个命令行执行所有参数 该案例。。。esac部分是一个开关语句。如果$1与-*匹配(即如果它以-开头),则将执行第一个案例,并且不会执行任何操作。否则(如果$1匹配*,这取决于shell设置,可能会排除以开头的内容)exec$*将运行 在这一点周围有一条if语句,确保只有在实际有任何参数

这个bash脚本的目的是什么?(这是较大脚本的一部分。)

一个相关问题:


我不知道任何bash脚本,我会这么说

  • 查找参数数是否大于0
  • 如果是,它将查看第一个参数
    • 如果它以
      -
      开头,它什么也不做
    • 否则,它将作为单个命令行执行所有参数

案例。。。esac
部分是一个
开关
语句。如果
$1
-*
匹配(即如果它以
-
开头),则将执行第一个案例,并且不会执行任何操作。否则(如果
$1
匹配
*
,这取决于shell设置,可能会排除以
开头的内容)
exec$*
将运行


在这一点周围有一条if语句,确保只有在实际有任何参数需要检查时(参数计数大于零)才执行开关。

英语,逐行:

if the number of arguments is greater than 0
then
if the first argument...
  starts with '-', do nothing
  else, "exec" the arguments (run the entire set of arguments as a command replacing this process, not as a child process)
(end of case)
(end of if)

它接受传入的第一个参数,并与其余参数一起执行,即:

./script.sh ls dir1 dir2
就好像你打过字一样

ls dir1 dir2

如果此脚本的命令行上放置的第一个参数是文件,而不是选项,则尝试将其作为可执行文件或脚本运行

ls dir1 dir2