从嵌套脚本bash回显到文件

从嵌套脚本bash回显到文件,bash,Bash,我是bash的新手。我有两个脚本——script1,它遍历一个目录,并对其中的每个文件执行script2 脚本1: #!/bin/bash for file in $(find ../myFiles/ -type f); do $( cat $file | ./script2) >> res.txt done 脚本2: while read line; do ... .... echo "$line" done 但是,script2中的echo“$line”不能

我是bash的新手。我有两个脚本——script1,它遍历一个目录,并对其中的每个文件执行script2

脚本1:

#!/bin/bash
for file in $(find ../myFiles/ -type f); do
   $( cat $file | ./script2) >> res.txt
done
脚本2:

while read line;
do   ...
  ....
  echo "$line"
done
但是,script2中的
echo“$line”
不能按我所希望的那样工作(到res.txt文件),但它作为命令输出,导致错误(“找不到命令”)

有人知道怎么做吗? 谢谢。

$(foo)
执行命令
foo
的结果,与您描述的完全相同。做:

./script2 < "$file" >> res.txt

如果使用以下功能来完成任务,则任务会更容易:

#!/bin/bash                                                                      

search_path='.'                                                                  

### declare functions ###                                                        
function foo {                                                                   
  for file in `find $search_path -type f`                                        
  do                                                                             
    echo 'processing: '$file                                                     
    process_file $file                                                           
  done                                                                           
}                                                                                

function process_file {                                                          
  while read line                                                                
  do                                                                             
    echo $line                                                                   
  done < $file                                                                   
}                                                                                

### call your main function ###                                                  
foo
#/bin/bash
搜索路径='。'
###声明函数
函数foo{
对于“查找$search\u路径-类型f”中的文件
做
echo“处理:”$file
处理文件$file
完成
}                                                                                
函数进程_文件{
读行时
做
回音$线
完成<$file
}                                                                                
###调用主函数####
福
它更容易阅读,也更容易修改,以防以后需要额外的功能。 一个脚本也足够了

(一件很酷的事情是,脚本将自动打印。)

$(…)
用于命令替换。考虑以下脚本:

脚本1:

#!/bin/bash
while read file; do
   ./script2 "$file" >> res.txt
done < <(find . -name "file" -type f)
#!/bin/bash
while read line; do
  echo "$line"
done < "$1"
#/bin/bash
读取文件时;做
./script2“$file”>>res.txt

完成echo$line
,无双引号。同样在script1中,
$(cat..
行可以工作吗?您需要类似于
`cat$file./script2`>>res.txt
#!/bin/bash
while read line; do
  echo "$line"
done < "$1"