Vin*_*nod 7 shell-script environment-variables
我想在执行时在脚本中传递变量
前任: sh abc.sh export id=3
ilk*_*chu 10
导出的变量和在同一命令行上设置的变量对程序可见:
$ cat foo.sh
#!/bin/sh
echo "$foo"
$ foo=bar ./foo.sh
bar
$ export foo=bar
$ ./foo.sh
bar
Run Code Online (Sandbox Code Playgroud)
但更常见的成语是使用命令行参数,它们会设置位置参数$1
,$2
等等。
$ cat arg.sh
#!/bin/sh
echo "$1 and $2"
$ ./arg.sh alpha beta
alpha and beta
Run Code Online (Sandbox Code Playgroud)
或者用于"$@"
获取所有命令行参数,可能在shift
用于从一开始就删除一些固定参数之后。对于命名参数,最好使用getopt
(手册页)或getopts
(POSIX,bash-hackers.org 中的教程)。
在任何情况下,一个健壮的脚本都必须处理某些变量丢失(未设置)的情况。
归档时间: |
|
查看次数: |
8887 次 |
最近记录: |