从嵌套脚本bash回显到文件
我是bash的新手。我有两个脚本——script1,它遍历一个目录,并对其中的每个文件执行script2 脚本1:从嵌套脚本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”不能
#!/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"