我想制作一个程序,从文件mydata
中搜索包含所有给定因素的所有行。我尝试从egrep
mydata
的第一个因素,并将其保存在变量a
中。然后,我尝试从egrep
a
下一个因素,并再次将结果保存到a
,直到我egrep
所有因素。但是当我执行该程序时,它说
第14行中的“找不到命令”。
if [ $# -eq 0 ]
then
echo -e "Usage: phoneA searchfor [...searchfor]\n(You didn't tell me what you want to search for.)"
else
a=""
for i in $*
do
if [ -z "$a" ]
then
a=$(egrep "$i" mydata)
else
a=$("$a" | egrep "$i")
fi
done
awk -f display.awk "$a"
fi
我希望所有行,包括我在display.awk
中所做的模式中在屏幕上输出的所有因素。
答案 0 :(得分:0)
$a
包含数据,而不是命令。您需要将该数据写入管道。
if [ $# -eq 0 ]
then
printf '%s\n' "Usage: phoneA searchfor [...searchfor]" "(You didn't tell me what you want to search for.)" >&2
exit 1
fi
a=""
for i in "$@"; do
if [ -z "$a" ]; then
a=$(egrep "$i" mydata)
else
a=$(printf '%s' "$a" | egrep "$i")
fi
done
awk -f display.awk "$a"