shell中的界定

shell中有些符号在不同界定下会被不同处理,界定主要有3种方式:

(1)单引号

(2)双引号

(3)反引号

我们最常用的就是双引号和单引号,对于这2个符号,用$变量可以很清楚的说明它们的区别,如下:

[[email protected] ~]$ echo ‘Home is $HOME‘

Home is $HOME

[[email protected] ~]$ echo "Home is $HOME"

Home is /home/map

我们可以很清楚的总结出规律:单引号中$HOME被视为字符串,双引号中$HOME被视为变量并展开为它实际的值

下面再说说反引号,这个符号是“`”,就是在esc下面的那个键,依旧看个小例子:

[[email protected] ~]$ whoami

map

[[email protected] ~]$ echo `whoami`

map

我们也可以很清楚的总结出规律:反引号界定的内容被当作shell命令,其内容在执行过程中被该命令的输出自动替换

shell中的界定

时间: 2024-08-27 15:01:10

shell中的界定的相关文章

shell中$(( )) 与 $( ) 还有${ }的区别

http://blog.chinaunix.net/uid-14351756-id-2820651.html $( ) 与 ` ` (反引号)在 bash shell 中,$( ) 与 ` ` (反引号) 都是用来做命令替换用(command substitution)的. 所谓的命令替换与我们第五章学过的变量替换差不多,都是用来重组命令行:* 完成引号里的命令行,然后将其结果替换出来,再重组命令行.例如:[code]$ echo the last sunday is $(date -d "la

linux shell中的单引号与双引号的区别(看完就不会有引号的疑问了)(转)

" "(双引号)与 ' '(单引号)的区别  你在shell prompt后面敲打键盘.直到按下enter的时候,你输入的文字就是command line了,然后shell才会以进程方式执行你所提交的命令.但是,你又可知道:你在command line输入的每一个文字,对shell来说,有什么类别之分呢? 简单而言,command line的每一个charactor分为如下两种:   *literal:也就是普通纯文字,对shell来说没有特殊功能.   *meta:对shell来说,

Shell中命令替换$(...)与后置引用`...`的区别与联系

一. 命令替换 a.在bash中,$( )与``(反引号)都是用来作命令替换的. b.命令替换与变量替换差不多,都是用来重组命令行的,先完成引号里的命令行,然后将其结果替换出来,再重组成新的命令行. 例子1: $ echo today is $(date "+%Y-%m-%d") today is 2014-07-01 二. $( )与``(反引号) (1)区别 `CMD`在执行时,shell会不管``内是什么都先进行解释,再把解释后的最终结果送给shell去执行.如果解释后的最终结果

shell中$(( )) 、 $( ) 、${ }的区别

$( ) 与 ` ` (反引号)在 bash shell 中,$( ) 与 ` ` (反引号) 都是用来做命令替换用(command substitution)的. 所谓的命令替换与我们第五章学过的变量替换差不多,都是用来重组命令行:* 完成引号里的命令行,然后将其结果替换出来,再重组命令行.例如:[code]$ echo the last sunday is $(date -d "last sunday" +%Y-%m-%d)[/code]如此便可方便得到上一星期天的日期了- ^_^

shell中 $() $(()) $[] ${} $[[]] 区别

$( ) 与 ` ` (反引号) $( ) 与 ` ` (反引号) 在 bash shell 中,$( ) 与 ` ` (反引号) 都是用来做命令替换用(command substitution)的. 在多层次的复合替换中,` ` 须要额外的跳脱( \` )处理,而 $( ) 则比较直观.例如: 这是错的: [code]command1 `command2 `command3` `[/code] 原本的意图是要在 command2 `command3` 先将 command3 提换出来给 com

linux在shell中获取时间

获得当天的日期 date +%Y-%m-%d 输出: 2011-07-28 将当前日期赋值给DATE变量DATE=$(date +%Y%m%d) 有时候我们需要使用今天之前或者往后的日期,这时可以使用date的 -d参数 获取明天的日期 date -d next-day +%Y%m%d 获取昨天的日期 date -d last-day +%Y%m%d 获取上个月的年和月 date -d last-month +%Y%m 获取下个月的年和月date -d next-month +%Y%m 获取明年

在 shell 中使用 vi 模式

作为一名大型开源社区的参与者,更确切地说,作为 Fedora 项目的成员,我有机会与许多人会面并讨论各种有趣的技术主题. 我最喜欢的主题是"命令行"或者说 shell,因为了解人们如何熟练使用 shell 可以让你深入地了解他们的想法,他们喜欢什么样的工作流程,以及某种程度上是什么激发了他们的灵感. 许多开发和运维人员在互联网上公开分享他们的" dot 文件"(他们的 shell 配置文件的常见俚语),这将是一个有趣的协作机会,让每个人都能从对命令行有丰富经验的人中

shell中的重定向(输入输出)

注意:不同版本的Linux会有所区别,不过大同小异 Linux 命令默认从标准输入设备(stdin)获取输入,将结果输出到标准输出设备(stdout)显示.一般情况下,标准输入设备就是键盘,标准输出设备就是终端,即显示器. 输出重定向 命令的输出不仅可以是显示器,还可以很容易的转移向到文件,这被称为输出重定向. 命令输出重定向的语法为: $ command > file 这样,输出到显示器的内容就可以被重定向到文件. 例如,下面的命令在显示器上不会看到任何输出: $ who > users 打

书写优雅的shell脚本(五)- shell中(())双括号运算符

在使用shell的逻辑运算符"[]"使用时候,必须保证运算符与算数之间有空格. 四则运算也只能借助:let,expr等命令完成. 今天讲的双括号"(())"结构语句,就是对shell中算数及赋值运算的扩展. 1.语法: ((表达式1,表达式2-)) 2.特点: (1)在双括号结构中,所有表达式可以像c语言一样,如:a++,b--等. (2)在双括号结构中,所有变量可以不加入:"$"符号前缀. (3)双括号可以进行逻辑运算,四则运算 (4)双括号结