shell 命令行参数

命令行参数 $0 表示程序名。 $1 至 9则是位置参数。9则是位置参数。# 表示参数的个数。 \* 将所有参数当做一个整体来引用 @ 把每个参数作为一个字符串返回,可以使用for循环来遍历 ? 最近一个执行的命令的退出状态。0表示执行成功?最近一个执行的命令的退出状态。0表示执行成功_ 上一个命令的最后一个参数。使用快捷键 ESC+. 也是这个效果 位置参数 位置参数不止9个,更多的参数也是一样支持的。只是要使用${10}这样的形式引用。 $1 和 ${1}的效果是一样的。 不用花括号的话,$10 会被认为是 $1 和一个字符 0。 带空格的参数值 每个参数都是用空格分隔的。要在参数值中包含空格,必须要使用引号(单引号或双引号都可)。 将文本字符串作为参数传递时,引号并非数据的一部分。它们只是表明数据的起止位置。 获取脚本名 $0 表示脚本名,但是不同的调用方法返回的结果也是不同的。下面的脚本就是简单的打印$0的值:

使用 basename 命令 如果要使用脚本名称来进行判断,可以先用命令 basename 把路径的信息给过滤掉。命令的效果如下:

所以上面的脚本可以修改成这样:

测试参数 在脚本中使用参数要确保参数存在,否则运行时有可能会报错:

如果只是当做字符串引用,也不会报错。没有传参的参数默认都是空:

判断参数是否存在 在 shell 中利用 -n Read more…