将参数传递给表达式并从中获取输出?

时间:2013-04-28 01:16:09

标签: bash shell

我目前有以下脚本:

var_name=`cat X | grep Y`

其中X和Y是文件名和一些字符串。我想使这个一般,并将X和Y转换为第一个和第二个参数传递给脚本。我试过了

var_name=`cat $1 | grep $2`

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

但不起作用。

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

1 个答案:

答案 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)