如何使用Perl创建shell脚本?

Léo*_* 준영 1 shell perl replace find

我有一个名为replaceUp的Perl脚本:

 #!/usr/bin/perl                                          

 search=$1
 replace=$2

 find . -type f -exec perl -p -i -e "s/$search/$replace/g" {} \;
Run Code Online (Sandbox Code Playgroud)

该脚本未加载.这表明我的脚本错了.

如何使用Perl创建shell脚本?

cha*_*aos 10

第一行应该是#!/bin/sh,而不是#!/usr/local/bin/perl.你错了,这是一个Perl脚本; 它是一个调用Perl的shell脚本.

它也不会真正起作用,因为$ search和$ replace不会在单引号内插入.双引号尝试单引号.

或者更好的是,尝试我的大规模搜索/替换Perl脚本.我为此保留了一个纯Perl脚本,因为像大规模搜索/替换一样危险,你不需要多级别的shell元字符解释,从危险到绝对致命.

  • @Masi:你是谁登录的?用户'root'?如果是这样,愚蠢,愚蠢,愚蠢.永远不要以root身份探索脚本 - Perl,shell或任何其他类型; 一个错误可能会(将会)灾难性的.只有在绝对必要时才使用"root",并且只有当您确定要执行的操作不会导致任何问题时才使用"root".在根目录中运行的'find'命令可能会损坏各种文件 - 比如/ bin/sh等等.不是一个快乐的情况.永远不要以任何方式运行任何东西,直到你确定它不会弊大于利!(并且不要以root用户身份登录.) (4认同)
  • @chaos:没有评论就很难阅读你的Perl脚本.有评论的任何地方都有相同的脚本? (2认同)