首页 > 解决方案 > 如何在bash中将变量传递给awk以解析值

问题描述

当我尝试解析最后一个文件夹时使用 awk 出现错误“没有这样的文件或目录”。如何将变量传递给 awk

CacheLocation="/home/dir1/tempdl/abc-cache"
cacheFolderName=$(awk -F/ '{print $NF}' $CacheLocation) 

标签: bashawk

解决方案


awk不适用于字符串,它期望输入为文件或stdin

CacheLocation="/home/dir1/tempdl/abc-cache"
cacheFolderName="$(awk -F/ '{print $NF}' <<<"$CacheLocation" )"

在这种特殊情况下,它可能更容易使用basename

CacheLocation="/home/dir1/tempdl/abc-cache"
cacheFolderName="$( basename "$CacheLocation" )"

推荐阅读