问答详情
源自:4-2 shell多分支if语句例:计算器

请问,关于在脚本中使用$()来执行系统命令的问题

老师在写脚本的时候,比如 read -p “输入一个目录 ”dir   ,就不需要使用 $(),但是有的命令比如 ps aux | grep httpd | grep -v grep就需要使用$()把这条命令括起来,那么什么时候使用$(),什么时候不需要使用$()呢???百度也没有查到答案,我现在有两个猜测,1.shell内部命令,在写脚本的时候不需要$()?2.read 这条命令默认已经传值给了一个参数,所以当命令执行结果需要我们主动赋值给一个变量的时候,需要使用$() ???     我现在有点乱,谁能帮帮我,非常感谢!!!

提问者:慕田峪3367142 2019-08-19 17:08

个回答

  • 0_菇凉将我作甚_0
    2019-09-05 16:06:00

    $(命令)是命令替换,var=$(命令),是吧命令的执行结果传给变量,而不是把命令这个字串本身传给变量


  • 慕侠3228424
    2019-08-25 09:39:40

    个人认为:read命令后面的变量,属于赋值,所以不需要$()。其它的调用变量的命令,需要$()。

  • 慕粉0121314447
    2019-08-20 17:44:12

    通常把命令执行的结果赋值给变量时,需要使用$()包起来,然后read命令比较特殊,我是这么理解的。

  • weixin_慕移动6024322
    2019-08-20 17:11:02

    个人赞同你的第2个猜测