0

在我的bash_profile我有这个:

  function ht() { perl -i -pe 's|<!-- Mirrored from (.*?) -->\n||' "$a" ;}

我想运行ht对馈送的文件进行内联替换以删除带有 HTTrack 签名的 HTML 注释,但是当我运行它时,

ht file.html

我得到:

Can't open : No such file or directory.

我怀疑这是因为我的 $a 周围的引号干扰了perl正在输入的命令。也许它"在文件名的字面上加上前缀,或者这种性质的东西,总的来说它变成了错误的文件名。

我尝试删除我周围的双引号,$a但这似乎并没有达到我想要的效果。我该如何解决这个问题?

4

1 回答 1

3

你必须告诉 perl 你要运行什么文件。改成这样:

function ht() { perl -i -pe 's|<!-- Mirrored from (.*?) -->\n||' "$@";}

注意$@末尾的“$a”而不是“$a”。正如@jwd 指出的那样,这甚至比$*大多数情况下都要好。

于 2012-05-14T17:31:51.310 回答