Linux 中的 $ 符号:从命令提示到高级脚本的多面手

💡 原文中文,约5100字,阅读约需13分钟。
📝

内容提要

本文系统梳理了 $ 符号在 Linux 中的多种用法,包括命令提示符、变量扩展、命令替换和算术运算。$ 符号是 shell 中的重要元素,帮助用户区分权限、读取变量值、访问特殊变量及执行数学运算,理解其用法是掌握 Linux 命令行和脚本编写的基础。

🎯

关键要点

  • $ 符号在 Linux 中的多种用法包括命令提示符、变量扩展、命令替换和算术运算。
  • $ 符号是 shell 中的重要元素,帮助用户区分权限和读取变量值。
  • $ 符号在命令行中表示普通用户的提示符,root 用户的提示符为 #。
  • PS1 变量控制提示符的样式,可以自定义 $ 的位置和颜色。
  • $ 符号用于变量扩展,通过 $变量名 读取变量的值。
  • 使用花括号 {} 明确变量名边界,避免识别错误。
  • 特殊变量以 $ 开头,用于访问脚本参数、进程信息和命令状态。
  • $() 是命令替换的语法,用于将命令输出嵌入到其他命令中。
  • $((表达式)) 用于算术扩展,支持整数运算。
  • $? 用于获取上一条命令的退出状态码,判断命令是否成功。
  • 在文本处理工具中,$ 表示行尾锚点,与 shell 中的用法不同。
  • 读取变量值时必须使用 $,直接写变量名会被视为字符串。
  • 变量值包含空格时,需用双引号包裹以避免分割。
  • 优先使用 $() 进行命令替换,避免使用反引号。
  • $@ 和 $* 的区别在于前者将参数视为独立个体,后者合并为一个字符串。
  • 编写脚本时应遵循最佳实践,避免以 $ 开头命名变量,检查特殊变量边界等。

延伸问答

$ 符号在 Linux 中的基本作用是什么?

$ 符号在 Linux 中主要用于表示普通用户的命令提示符,并帮助区分用户权限。

如何使用 $ 符号进行变量扩展?

通过 $变量名 的形式可以读取变量的值,使用花括号 {} 可以明确变量名的边界。

$() 和反引号 ` 的区别是什么?

$() 是命令替换的推荐语法,支持嵌套且更易读,而反引号不支持嵌套,且可读性较差。

在脚本中如何获取上一条命令的退出状态码?

可以使用 $? 来获取上一条命令的退出状态码,0 表示成功,非 0 表示失败。

$@ 和 $* 有什么区别?

$@ 将参数视为独立个体,而 $* 将所有参数合并为一个字符串,循环遍历时建议使用 $@。

在使用 $ 符号时需要注意哪些常见问题?

需要确保使用 $读取变量值,避免直接写变量名;若变量值包含空格,需用双引号包裹。

➡️

继续阅读