在我的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
周围的双引号,但这似乎不符合我的要求。我该如何解决这个问题?
答案 0 :(得分:3)
你必须告诉perl你正在尝试运行的文件。改为:
function ht() { perl -i -pe 's|<!-- Mirrored from (.*?) -->\n||' "$@";}
请注意$@
而不是&#34; $ a&#34;在末尾。正如@jwd指出的那样,在大多数情况下,这比$*
更好。