You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在awk命令中传入Shell变量USER查询挂载的网络文件夹

解决Awk中引用Shell变量的问题

Shell不会解析单引号内部的变量,所以你直接在awk的单引号脚本里写$USER,它会被当成字面字符串处理,自然无法匹配到正确内容。给你三种可行的解决方法:

  • 方法一:用awk的-v选项传递变量(推荐)
    这是最清晰、最不易出错的方式,把Shell变量传递给awk内部变量后再使用:

    df | awk -v user="$USER" '$0 ~ user"@192.168.1.10" { print $1 }'
    

    这里-v user="$USER"将Shell的USER变量值赋值给awk的user变量,然后用~运算符匹配拼接后的字符串。

  • 方法二:用双引号包裹awk脚本(需转义内部$)
    双引号内的Shell变量会被解析,但要注意把awk自己的$0、$1等字段变量转义,避免被Shell提前解析:

    df | awk "\$0 ~ \"$USER@192.168.1.10\" { print \$1 }"
    
  • 方法三:拼接单双引号
    将awk的单引号脚本拆分成几段,中间用双引号包裹需要解析的Shell变量,让Shell先解析变量再拼接成完整的awk脚本:

    df | awk '/'"$USER"'@192.168.1.10/ { print $1 }'
    

内容的提问来源于stack exchange,提问作者andio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 00:32:03