基于arm5718的Shell脚本参数传递的2种方法
Posted 毛毛虫的爹
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于arm5718的Shell脚本参数传递的2种方法相关的知识,希望对你有一定的参考价值。
前言
平时会遇到很多脚本都有参数选项,类似:
./test.sh -f config.conf -v --prefix=/home
这种脚本怎么写呢?
一、Shell 特殊参数解释
首先来看几个特殊变量:$0, $#, $*, $@, $?, $$, $_
示例1:新建一个test.sh的文件
#!/bin/bash
echo $0 # 当前脚本的文件名(间接运行时还包括绝对路径)。
echo $n # 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是 $1 。
echo $# # 传递给脚本或函数的参数个数。
echo $* # 传递给脚本或函数的所有参数。
echo $@ # 传递给脚本或函数的所有参数。被双引号 (" ") 包含时,与 $* 不同,下面将会讲到。
echo $? # 上个命令的退出状态,或函数的返回值。
echo $$ # 当前 Shell 进程 ID。对于 Shell 脚本,就是这些脚本所在的进程 ID。
echo $_ # 上一个命令的最后一个参数
echo $! # 后台运行的最后一个进程的 ID 号
执行结果如下:
$ ./test.sh test test1 test2 test3 test4
./test.sh # $0
# $n
5 # $#
test test1 test2 test3 test4 # $*
test test1 test2 test3 test4 # $@
0 # $?
12305 # $$
12305 # $_
# $!
$* 和 $@ 都表示传递给函数或脚本的所有参数
以上是关于基于arm5718的Shell脚本参数传递的2种方法的主要内容,如果未能解决你的问题,请参考以下文章