我目前有以下脚本:
var_name=`cat X | grep Y`
其中 X 和 Y 是一个文件名和一些字符串。我想让这个通用并将 X 和 Y 变成传递给脚本的第一个和第二个参数。我试过了
var_name=`cat $1 | grep $2`
和
var_name=`cat "$1" | grep "$2"`
但两者都不起作用。
这样做的正确方法是什么?
正如评论中所建议的,您可以使用 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)