1. Linux下可执行程序的Shell传参格式规范
Linux下的可执行程序在运行时经常需要传一些参数,而这些参数是有规范的。包括我们自己写的在Linux系统下运行的Shell脚本、Python脚本等可执行程序,最好也遵循相关规范。我们下面以Linux命令为例来讲解参数规范:
Linux命令行的格式规范如下:
orion-orion@MyDesktop ~ % command [-options] parameter1 parameter2
上述命令详细说明如下:
此外,需要注意在Linux系统中英文大小写字母是不一样的,例如 cd
命令和 CD
并不同。
2. 实例
让我们给出一些传递命令参数的例子。
[En]
Let’s give some examples of passing parameters of commands.
ls -al ~
ls
为命令名。 -al
是 -a -l
的简写,意为使用 -a
(列出包括隐藏文件在内的所有文件)与 -l
(列出文件属性)这两个选项。 ~
为 ls
命令的参数,意为家目录。
tar -xvf test3.zip -C .
tar
为命令名。 -xv
意为使用 -x
(解压操作)与 -v
(可视化解压过程)这两个选项。 -f
意为指定压缩文件的名称,后面依附着 test3.zip
做为该选项的参数。 -C
意为指定解压后的目录,后面依附着 .
(当前目录)做为该选项的参数。
注意,
-f test3.zip
也可以写成--file test3.zip
或--file=test3.zip
(为--
开头的选项设置参数时都可以使用等号赋值)。
当我们直接在Shell中键入 man command
查看命令操作说明(manual)时,可以看到文档中对参数格式有详细描述:
TAR(1) General Commands Manual TAR(1)
NAME
tar – manipulate tape archives
SYNOPSIS
tar [bundled-flags ⟨args⟩] [⟨file⟩ | ⟨pattern⟩ ...]
tar {-c} [options] [files | directories]
tar {-r | -u} -f archive-file [options] [files | directories]
tar {-t | -x} [options] [patterns]
像其他可执行程序(如Git)一般也会遵循类似的传参规范:
GIT(1) Git Manual GIT(1)
NAME
git - the stupid content tracker
SYNOPSIS
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>]
[--super-prefix=<path>] [--config-env <name>=<envvar>]
<command> [<args>]
</args></envvar></name></path></name></path></path></path></value></name></path>
可以看到, git
在设置 --
开头的选项的参数时就希望我们采用 =
赋值方式,如 --git_dir=/home/domain/.git
,这种方式比 --git_dir /home/domain/.git
更为直观。
Python脚本的运行也采用类似的传参风格,如:
python3 search.py -v -p spam --pat=eggs foo.txt bar.txt -o results \
--speed=fast
具体如何用Python编写解析命令行选项的程序,我们下一节再展开叙述。
- [1] 鸟哥. 鸟哥的 Linux 私房菜: 基础学习篇[M]. 人民邮电出版社, 2018.
Original: https://www.cnblogs.com/orion-orion/p/16290123.html
Author: orion-orion
Title: Linux:可执行程序的Shell传参格式规范
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/523561/
转载文章受原作者版权保护。转载请注明原作者出处!