玄黄问道 2021-05-04 22:27 采纳率: 50%
浏览 23

sh echo awk脚本输出

echo "`who am i | awk {print$1}`'s \$HOME is \"$HOME\""
echo "`who am i | awk {print\$1}`'s \$HOME is \"$HOME\""
echo "`who am i | awk '{print$1}'`'s \$HOME is \"$HOME\""
echo "`who am i | awk '{print\$1}'`'s \$HOME is \"$HOME\""
echo "`who am i | awk "{print$1}"`'s \$HOME is \"$HOME\""
echo "`who am i | awk "{print\$1}"`'s \$HOME is \"$HOME\""
root     pts/0        2021-05-04 21:43 (xxx.xxx.xxx.xxx)'s $HOME is "/root"
root     pts/0        2021-05-04 21:43 (xxx.xxx.xxx.xxx)'s $HOME is "/root"
root's $HOME is "/root"
root's $HOME is "/root"
root     pts/0        2021-05-04 21:43 (xxx.xxx.xxx.xxx)'s $HOME is "/root"
root     pts/0        2021-05-04 21:43 (xxx.xxx.xxx.xxx)'s $HOME is "/root"

上述是sh命令和结果。

为什么第3、4个没有打印详情?

  • 写回答

1条回答 默认 最新

  • benbenli 2021-05-05 13:08
    关注

    shell里单引号里面的内容不展开,所以第3和4行命令awk的确接受到了 print $1, 从而把who am i的输出root pts/0 2021-05-04 21:43 (xxx.xxx.xxx.xxx)的第一个单词root作为$1打印出来了。

     

    而1,2,5,6行里$1传给awk命令之前已经被展开为root pts/0 2021-05-04 21:43 (xxx.xxx.xxx.xxx)传给awk,所以这个串原样打印出来了。

    评论

报告相同问题?

悬赏问题

  • ¥20 蓝牙耳机怎么查看日志
  • ¥15 R语言 拟时序分析降维图如何减少分支
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统