我目前有以下脚本:
var_name=`cat X | grep Y`
其中X和Y是文件名和一些字符串。我想使这个一般,并将X和Y转换为第一个和第二个参数传递给脚本。我试过了
var_name=`cat $1 | grep $2`
和
var_name=`cat "$1" | grep "$2"`
但不起作用。
这样做的正确方法是什么?
答案 0 :(得分:1)
正如评论中所建议的那样,你可以使用bash -x进行调试,看看发生了什么。同样如上所述,猫不需要但仍然产生结果。这是一个简短的测试。也许你修改你的帖子并展示你的实际完整节目。
$>cat uuoc.sh
#!/bin/sh
var_name=`cat "$1" | grep "$2"`
echo Result 1:
echo $var_name
var_name=`grep "$2" "$1"`
echo Result 2:
echo $var_name
$>cat myfile.txt
file
with
pattern (1)
just
for
pattern (2)
$>./uuoc.sh myfile.txt pattern
Result 1:
pattern (1) pattern (2)
Result 2:
pattern (1) pattern (2)