0

我目前有以下脚本:

var_name=`cat X | grep Y`

其中 X 和 Y 是一个文件名和一些字符串。我想让这个通用并将 X 和 Y 变成传递给脚本的第一个和第二个参数。我试过了

var_name=`cat $1 | grep $2`

var_name=`cat "$1" | grep "$2"`

但两者都不起作用。

这样做的正确方法是什么?

4

1 回答 1

1

正如评论中所建议的,您可以使用 bash -x 进行调试以查看发生了什么。同样如前所述, cat 不是必需的,但仍会产生结果。这是一个简短的测试。也许你修改你的帖子并展示你实际的完整程序。

$>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)
于 2013-04-28T07:07:41.917 回答