美文网首页
linux终端命令里的美元符号$究竟有啥玄机

linux终端命令里的美元符号$究竟有啥玄机

作者: nextliving | 来源:发表于2018-04-22 13:09 被阅读728次

程序员经常要在终端(Terminal)执行指令,其中经常出现的一个字符就是美元符号(dollar sign):$。相信很多人会感觉困惑,这玩意到底是啥?不要急,本文将为你揭开谜底。

shell prompt末尾的$

每次打开一个终端,首先印入眼帘的是大概这样的一行代码:


Last login: Tue Jun 7 18:38:30 on ttys000

MacBookPro:~ chenxin$

先解释一下以上代码的含义,第一行没特别之处,略过。第二行中MacbookPro是主机名,不同的人主机名不一样,对应的显示也不一样。表示当前操作路径是当前登陆用户的根目录。chenxin表示当前操作计算机的登陆用户名。关键是结尾的美元符号"$",它出现在这个位置表示终端等待用户输入命令。"MacBookPro: chenxin$"这样以主机名开始,以"$"结束的一行叫做shell prompt,对应的shell版本是 Bourne shell (比如 POSIX shell, Korn shell或者 Bash)。如果shell prompt以%结束(比如"MacBookPro:~ chenxin%"),对应的shell版本是C shell(csh或者tcsh)。如果shell prompt以#结束(比如"MacBookPro:~ chenxin#"),表示正在以超级用户(mac下输入sudo su进入超级用户)身份运行当前的shell。另外,在网上看别人的技术文章,经常看到类似于这样的代码片段:


$nvm install v5.11.0

$nvm use v5.11.0

$nvm alias default v5.11.0 

每行代码均以"$"开始,所以,以"$"开头贴出代码片段是暗示读者该代码是在终端中执行的,而"$"之前的shell prompt部分通常省略掉(主要是主机名和用户名,贴出来没任何意义)。

命令中的$

出现在命令中的"$"表示“扩展(expand)”,也有其它说法比如dereferencing(姑且翻译为逆引用吧),有点类似于C语言中对一个指针取地址的运算符"*"。比如笔者主机的环境变量HOME对应的路径是/Users/chenxin,当笔者键入以下命令:

$echo $HOME

或者

$echo ${HOME}

输出的结果都是

/Users/chenxin

可以看到,"$"相当于取出了HOME所指代的真实路径,就像"*"取出了指针所指向的真实地址。我们可以给HOME赋任意的值,所以

$echo $HOME

理论上可以打印输出任意的值假如没有这个运算符,也就没有必要让HOME指代/Users/chenxin这个路径了,因为我们根本没有能够解析HOME真实值的方法,是"$"让HOME有了生命力,,我想这就是"$"有"expand"含义的由来。

"$"后紧跟变量variable可以这么写

$echo $variable

或者

$echo ${variable}

如果是一个命令(command)呢?这么写

$echo $(command)

显然"$"可以把命令(command)的执行结果取出来。

参考

相关文章

  • linux终端命令里的美元符号$究竟有啥玄机

    程序员经常要在终端(Terminal)执行指令,其中经常出现的一个字符就是美元符号(dollar sign):$。...

  • Linux 2-常用 Linux 命令的基本使用

    目标 理解学习 Linux 终端命令的原因 常用 Linux 命令体验 01. 学习 Linux 终端命令的原因 ...

  • Linux终端

    Linux终端 介绍Linux终端、命令行以及执行系统命令。对于新手,需要熟悉Linux终端,因为终端是与Linu...

  • 2019-07-11

    Linux 终端命令格式 目标 了解终端命令格式 知道如何查阅终端命令帮助信息 终端命令格式command [-o...

  • 快速操作Linux终端命令行的快捷键列表

    转自:快速操作Linux终端命令行的快捷键列表 快速操作Linux终端命令行的快捷键列表 在shell命令终端中,...

  • linux每日笔记---day 1

    1、Linux终端简单介绍 linux命令行也成为Linux终端界面(terminal或console),strl...

  • Linux的基本命令一

    一、Linux终端 windows下的cmd在Linux中叫做终端(Terminal),命令都是在终端内执行的 二...

  • Linux命令学习之:echo命令

    Linux命令学习之:echo命令 简介 linux的echo命令, 在shell编程中极为常用, 在终端下打印变...

  • 002--Linux终端命令简介

    终端命令格式 在我们开始学习一些常见的终端命令之前,我们先对Linux终端命令的格式有个了解。 [ ] 代表内容可...

  • Linux常用命令目录

    命令分类链接Linux特殊符号与常用快捷键Linux特殊符号与常用快捷键Linux常用命令-帮助和系统内置类Lin...

网友评论

      本文标题:linux终端命令里的美元符号$究竟有啥玄机

      本文链接:https://www.haomeiwen.com/subject/fbzqlftx.html