我正在寻找一种仅通过一些语法糖来提供具有多个参数的 bash 命令的方法。我已经知道 $@ 和 $*,但我不知道如何正确使用它们。如果使用以下语法就好了:
define args
command &args
进一步的语法如下:
- 连续连接单个参数和流参数
define args_stream
command &args_stream arg_1
- 交替连接单个和流
define args_stream1
define args_stream2
command &args_stream arg_1 &args_stream2
这似乎是一种不好的做法,但我希望减少我的 shell 脚本的几行...:(
更新 例子:由于问题太广泛,读者无法理解其实际含义,我提供了一些例子:
- 我的
printHeader
功能有 7 个参数,但其中大多数可以参数化。一种选择是将我的变量设置为某个默认参数。但是,我必须以一种不寻常的形式对参数进行排序,将主要参数作为最右边的元素。另一种形式是按照我提到的方式编写参数:我想正确编写这些参数,流或数组,如下所示:
command $1 [$2.1 $2.2 $2.3] $3
- 通过运行命令
git --help
,我收到以下日志:
usage: git [--version] [--help] [-C <path>] [-c <name>=<value>]
[--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
[-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare]
[--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
<command> [<args>]
括号之间的参数是可选的,但可以用双连字符--
表示法提供。这是我的参数流表示法的一个选项。
答案1
也许您正在谈论$1
、$2
等等,将其放入脚本中,您可以这样说youtube-dl argument1 argument2
。
$ command argument1 argument2
其中$1
和$2
代表这些论点。
或者,
还有其他方法可以做到这一点:
command="proot"
command+=" --link2symlink"
command+=" -0"
command+=" -r $folder"
作为例子。
由于我仍然不清楚这个问题,请提前告知我,以便我适当编辑或删除该答案。