关于使用 shell 变量的说明 [关闭]

Posted

技术标签:

【中文标题】关于使用 shell 变量的说明 [关闭]【英文标题】:Clarification regarding the usage of shell variables [closed] 【发布时间】:2016-11-04 15:03:24 【问题描述】:

我对 linux 很陌生,我尝试自己学习它。所以,我对以下命令$SHELL, $UID 和类似命令有疑问。当我输入echo $SHELL 时,我得到的输出是/bin/bash。

这句话是什么意思? 谢谢

【问题讨论】:

你为什么要问我们你的问题是什么意思? @Serenity — 不,这与 shebang 线无关。 你问什么是变量? here 是 RTFM 链接。 是什么让你输入echo $SHELL 【参考方案1】:

以美元符号 ($) 开头的不是命令,而是变量的扩展。例如: HOME 是变量的名称,$HOME 扩展为变量 HOME 中当前的值。 实际上,使用更完整的形式 $HOME 而不是 $HOME 更清晰,并且可以对表示进行操作。例如 $HOME^^ 表示变量 HOME 的内容转换为大写。

echo 是一个命令并打印到屏幕上,你跟随的就是 echo。

因此,echo $SHELL 打印了 SHELL 变量的内容。

一些标准变量,如 SHELL、UID、HOME 等,会在您登录时自动为您创建。

【讨论】:

从技术上讲,以美元符号开头的东西不是变量,而是变量的扩展。 (就像在数学中一样,f(x) 不是函数,函数是 f)。变量为SHELL$SHELLSHELL的扩展。 @gniourf_gniourf 是的,但从问题和信息来看我对 linux 还是很陌生,我认为这么多的技术比有用更令人困惑。 @kkeller,IMO gniourf_gniourf 与其说是技术性的,不如说是准确的。如果您 RT*M、5.2 Bash Variables,您可以清楚地看到列出的 Bash 变量前面没有 $。然后阅读 3.5 Shell 扩展部分,其中“参数和变量扩展”的后者适用于此处。 IMO 没有比第一次学习更准确(和技术)的时间了。 RT*M 并从头开始学习! ;)

以上是关于关于使用 shell 变量的说明 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

关于shell变量值的截取-通过分隔符-去除前后匹配到的内容

关于shell,环境变量放置在?

关于bash shell的相关整理与练习

03.关于Shell变量那些事

关于shell中变量设置

shell关于变量的操作