脚本执行两件事
1.启用用户输入文件名
2.允许用户输入行号以查看内容
echo "Enter the file name"
read fname
find / -name "$fname" > /tmp/newone.txt
if test $? -eq 0
then
{
echo "File found"
echo "The no of line in the file $fname is `cat /tmp/newone.txt | wc|awk '{pri
nt $1}'`"
echo "Enter the line no"
read lcnt
sed '"$lcnt" p' "$fname"
}
else
{
echo "File not found"
}
fi
问题 1.获取sed部分中的错误
错误消息“sed:-e expression#1,char 3:命令后的额外字符”
如何纠正它?
2.我可以将'find'的输出重定向到变量
例如
$ flloc = / tmp / newone.txt
所以我将能够使用'$ flloc'而不是绝对路径
答案 0 :(得分:0)
1)这是你在sed命令中使用变量的方法:
echo "Line no: "
read lcnt
sed -n "$lcnt p" $fname
原始表达式的错误在于,当您使用单引号时,不会解释bash变量。例如:
lcnt=5
# prints $lcnt
echo '$lcnt'
# prints 5
echo "$lcnt"
2)要将查找输出存储到变量,只需执行以下操作:
floc=`find / -name $fname` # Here I'm using backticks, not single quotes.