本文主要是介绍Linux Shell脚本入门:参数符号$0,$1,$#,$@,$$与模式替换符^^,,的实用手册,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在 Linux 中,$0、$1、$#、$@、$*、$?、$$ 等符号在 shell 脚本中经常使用,它们用于处理脚本参数、变量和状态。此外,^^、,, 是模式替换符,用于修改字符串大小写。还有很多其他的选项和表达式可以用于控制脚本的行为。
1. 位置参数变量
-
$0: 当前脚本或命令的名称。echo "Script name: $0" -
$1至$9: 传递给脚本的第一个到第九个参数。echo "First parameter: $1" echo "Second parameter: $2" -
$#: 传递给脚本的参数总数。echo "Number of parameters: $#" -
$@: 传递给脚本的所有参数,每个参数是独立的字符串。for param in "$@" doecho "Parameter: $param" done -
$*: 传递给脚本的所有参数,作为一个单一的字符串。echo "All parameters: $*"
2. 其他特殊变量
-
$?: 上一个命令的退出状态,0表示成功,非0表示失败。ls /nonexistent_directory echo "Exit status: $?" -
$$: 当前 shell 脚本的进程 ID。echo "Process ID: $$" -
$!: 最近执行的后台命令的进程 ID。sleep 10 & echo "Last background job PID: $!"
3. 字符串模式替换符
-
^^: 将字符串中的所有小写字母转换为大写字母。var="hello world" echo "${var^^}" -
,,: 将字符串中的所有大写字母转换为小写字母。var="HELLO WORLD" echo "${var,,}" -
${var^}: 将字符串的第一个字符转换为大写。var="hello world" echo "${var^}" -
${var,}: 将字符串的第一个字符转换为小写。var="HELLO WORLD" echo "${var,}"
4. 参数处理选项
-
-a: 在shopt中启用或禁用数组变量索引扩展(需要使用shopt -s或shopt -u)。 -
-b: 在 Bash 中,启动脚本时可以用来执行read命令或设置变量之前的提示符。 -
-e: 启用脚本中的set -e选项,使得脚本在遇到第一个错误(退出状态非零)时停止执行。 -
-f: 禁用文件名扩展(globbing),例如*和?。 -
-n: 读取命令但不执行,用于检查语法。 -
-u: 当引用未设置的变量时,返回错误。 -
-v: 在执行每一行命令之前,将其打印到标准输出。 -
-x: 在执行每一行命令之前,将其打印到标准输出(通常用于调试)。
5. Bash 的表达式选项
-
$((expression)): 算术扩展,用于执行算术运算。result=$((3 + 5)) echo "Result: $result" -
${var:-default}: 如果变量var未定义或为空,返回default。echo "${name:-'default_name'}" -
${var:=default}: 如果变量var未定义或为空,将其设置为default,并返回default。echo "${name:='default_name'}" -
${var:+replacement}: 如果变量var已定义且不为空,返回replacement;否则返回空字符串。echo "${name:+'replacement_name'}" -
${var:?error_message}: 如果变量var未定义或为空,打印error_message并退出脚本。echo "${name:?'Name not defined'}" -
${#var}: 返回变量var的长度。echo "Length of name: ${#name}"
6. 条件表达式
-
[[ expression ]]: 用于测试条件的高级测试命令,支持字符串比较、模式匹配等。if [[ "$name" == "admin" ]]; thenecho "Welcome, admin!" fi -
-eq: 数字相等。 -
-ne: 数字不等。 -
-lt: 小于。 -
-le: 小于或等于。 -
-gt: 大于。 -
-ge: 大于或等于。 -
-z: 字符串为空。 -
-n: 字符串不为空。
7. 文件测试表达式
-e file: 文件存在。-f file: 文件是普通文件。-d file: 文件是目录。-r file: 文件可读。-w file: 文件可写。-x file: 文件可执行。
这些符号和选项在 Linux 脚本编程中非常有用,熟练掌握它们可以编写出功能强大且灵活的脚本。
这篇关于Linux Shell脚本入门:参数符号$0,$1,$#,$@,$$与模式替换符^^,,的实用手册的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!