📜  使用示例演示特殊参数的 Shell 脚本(1)

📅  最后修改于: 2023-12-03 15:22:25.696000             🧑  作者: Mango

使用示例演示特殊参数的 Shell 脚本

在编写 Shell 脚本时,我们可以利用命令行传递参数来实现更加灵活的功能。除了使用 $1$2 等变量来获取位置参数外,还可以使用一些特殊的参数来实现不同的功能。

特殊参数

下面是常见的特殊参数:

  • $0: 表示当前脚本的文件名。
  • $#: 表示位置参数的个数。
  • $*$@: 表示所有位置参数。不同之处在于,$* 将所有参数视为一个整体,而 $@ 将每个参数分别处理。
  • $?: 表示上一个命令的返回值,如果命令执行成功,则返回 0,否则返回非 0 值。
  • $$: 表示当前脚本的进程号。
使用示例
获取当前脚本文件名
#!/bin/bash

echo "当前脚本文件名:$0"

执行结果:

当前脚本文件名:test.sh
获取位置参数个数
#!/bin/bash

echo "位置参数个数:$#"

假设执行脚本时传入了 3 个位置参数,执行结果如下:

位置参数个数:3
获取所有位置参数
#!/bin/bash

echo "所有位置参数:$*"

假设执行脚本时传入了三个位置参数,分别为 foobarbaz,执行结果如下:

所有位置参数:foo bar baz

使用 $@ 同样可以输出相同的结果,只不过是将每个参数分别处理:

#!/bin/bash

echo "所有位置参数:$@"

执行结果:

所有位置参数:foo bar baz
获取上一个命令的返回值
#!/bin/bash

ls non_existent_file
echo "上一个命令的返回值:$?"

执行结果:

ls: 无法访问'non_existent_file': 没有那个文件或目录
上一个命令的返回值:2
获取当前脚本的进程号
#!/bin/bash

echo "当前脚本进程号:$$"

执行结果:

当前脚本进程号:1830
总结

通过使用特殊参数,我们可以在 Shell 脚本中实现更加灵活的功能。本文介绍了常见的特殊参数,并且给出了使用示例。通过这些例子,我们可以更好地理解 Shell 脚本中特殊参数的使用方法。