【发布时间】:2017-08-31 09:44:24
【问题描述】:
有没有办法将 find(少数参数)的输出保存到少数变量?我需要做的是获取 find 的输出并将其作为输入提供给 while 并使用 read 。我不能将 test 与 -r -w 或 -x 一起使用(这是一项学术练习)。
类似这样的:
find $1 -writable -printf "%f %p\n" , -readable -printf "%f %p\n" , -executable -printf "%f %p\n" | while read var1 var2 var3
do
echo $var1
echo $var2
echo $var3
done
在 var1 中,我只想拥有可写文件,var2 可读,var3 可执行文件。 而不是全部都在 var1 中。
【问题讨论】:
-
为什么不用三个不同的
find命令走简单的路呢?为什么要结合三个数据流来区分它们? -
我不能在锻炼中使用超过一个 find。无论如何,我得到了答案。 – read 获取输入中的任何内容并与之一起使用,因此当 find 打印带有换行符的文件时,它每次只转到一个变量。而不是在while之后使用read var1 var2 var3,我应该在while之后使用read var1并读取var2,而是在循环中读取var3。因此,如果输入以新行打印,则基本上使用不止一次读取。
标签: bash while-loop find