猿问

shell中命令替换$(cmd)和符号`cmd`有什么区别吗?

shell中命令替换$(cmd)和符号`cmd`有什么区别吗?


慕桂英4014372
浏览 2699回答 2
2回答

繁星coding

`cmd`是执行里面的shell命令但是$()有多种用法,$(cmd)只是其中一种用法,效果其实是和`cmd`是一样的。参考下$()的用法:${#1} : 第一个参数的长度${1} : 第一个参数$(env | grep HOSTNAME) :去圆括号内命令的返回值${HOSTNAME} : 返回花括号内环境变量的值

largeQ

1, 反引号很容易与单引号搞混乱,对初学者来说。有时在一些奇怪的字形显示中,两种符号是一模一样的(直竖两点)。用$()可以更好的避免这种混乱2, 在多层次的复合替换中,反引号须要额外的跳脱( /` )处理,而 $( ) 则比较直观。例如:`com1`com2`` 你这么写就是错的。需要`com1/`com2/``如果有多个命令嵌套就比较复杂了。而用$()就比较直观比如$(com1$(com2$(com3)))不过,$( ) 并不是没有毙端的...反引号 基本上可用在全部的 unix shell 中使用,若写成 shell script ,其移植性比较高。而 $() 并不见的每一种 shell 都能使用.
随时随地看视频慕课网APP
我要回答