我们可以从文件中执行grep和sed,并将输出推送到variables中
grep "^/dev/disk/by-id/scsi-*" /tmp/disks.txt | sed '{'s/=.*//'}'
输出将是这样的:
/dev/disk/by-id/scsi-3644a8420420897001f2af8cc054d33bb /dev/disk/by-id/scsi-3644a8420420897001ef50fcb0f778b86-part3 /dev/disk/by-id/scsi-3644a8420420897001ef50fcb0f778b86-part2
错误:
[/~]# grep "^/dev/disk/by-id/scsi-*" /tmp/disks.txt | sed {'s/=.*//'} >> $x -bash: $x: ambiguous redirect
我们可以将所有3行变成一个variables,并用foreach调用它们吗? 谢谢!
我已经testing了,下面两个工作在bash shell中:
x=`grep "^/dev/disk/by-id/scsi-*" /tmp/disks.txt | sed {'s/=.*//'}` x=$(grep "^/dev/disk/by-id/scsi-*" /tmp/disks.txt | sed {'s/=.*//'})
注意第一行是反引号,而不是单引号。
您的问题中的>>字符将输出发送到文件,而不是variables。
回答第二部分,是的,使用上面的输出,for循环的工作原理是:
for line in $x do echo $line done