Bash 从复杂命令中分配变量

Bash 从复杂命令中分配变量,bash,shell,ksh,Bash,Shell,Ksh,我试图使用另一个变量来分配一个变量,这个变量从一段时间以来一直在被读入,同时也在被解析。但是,由于某些原因,我无法获取新变量以获取所需的数据。任何帮助都将不胜感激 while read line do foldername=$($line | awk -F'/' '{ print $4 }') echo $foldername done < folderlist.txt 读取行时 做 foldername=$($line | awk-F'/''{print$4}')) e

我试图使用另一个变量来分配一个变量,这个变量从一段时间以来一直在被读入,同时也在被解析。但是,由于某些原因,我无法获取新变量以获取所需的数据。任何帮助都将不胜感激

while read line
do
    foldername=$($line | awk -F'/' '{ print $4 }')
    echo $foldername
done < folderlist.txt
读取行时
做
foldername=$($line | awk-F'/''{print$4}'))
echo$foldername
完成
txt包含我试图读取第4个参数的目录列表

为什么不: awk“{print$4}”folderlist.txt?
上面的脚本片段中的问题可能是您正在以命令的形式执行$line的内容,而不仅仅是解析它,您单独执行$($line…| awk…

$line | awk-F'/'{print$4}'
是错误的。您应该
echo“$line”| awk-F'/'{print$4}'
awk-F'/''{print$4}'谢谢您的快速回复!这很有效。我刚刚做了foldername=$(echo“$line”| awk-F'/'{print$4}')谢谢!这也行得通。foldername=$(awk-F'/'{print$4}'啊,好的。然后不要将整行读入一个变量,而是将字段1、2、3、4和rest读入变量,从中选择包含字段4的变量:
,同时读取f1 f2 f3 f4 rest;一定要回显“yourcommands$f4”;done
-不涉及子shell。更改字段分隔符是通过在读取f1 f2 f3 f4;do echo$f3时将变量IFS赋值给IFS
foo=“a/b/c/d”;IFS=“/”;完成的