相关疑难解决方法(0)

Perl中系统和反引号和管道之间的区别是什么?

Perl支持运行外部程序的三种方式(我知道):

system:

   system PROGRAM LIST
Run Code Online (Sandbox Code Playgroud)

如:

system "abc";
Run Code Online (Sandbox Code Playgroud)

反引号如:

`abc`;
Run Code Online (Sandbox Code Playgroud)

通过管道运行它,如:

open ABC, "abc|";
Run Code Online (Sandbox Code Playgroud)

它们之间有什么区别?这就是我所知道的:

  1. 您可以使用反引号和管道轻松获取命令的输出.
  2. 就是这样(在未来的编辑中更多?)

perl system pipe backticks

27
推荐指数
1
解决办法
7656
查看次数

如何将Perl的系统函数输出存储到变量中?

我的系统功能有问题.我想将系统函数输出存储到变量中.

例如,

system("ls");
Run Code Online (Sandbox Code Playgroud)

在这里,我希望当前目录中的所有文件名都存储在变量中.我知道我可以通过将输出重定向到一个文件并从中读取并将其存储到变量来实现.但我想要一种有效的方法.有什么办法吗?

perl system

26
推荐指数
5
解决办法
6万
查看次数

使用Perl将参数作为单独的参数提供给系统调用是否有用?

在Unix上,所有这三个都会产生相同的结果

system("top -H -p $pid -n 1");             #ver1
system("top", "H", "p $pid", "n 1");       #ver2
system("top", "-H", "-p $pid", "-n 1");    #ver3
Run Code Online (Sandbox Code Playgroud)
  • 是什么区别VER2VER3

  • 有什么理由我应该使用ver2ver3,而不是ver1

  • 它们甚至不支持管道结果,例如,是否有以下调用的ver2ver3等价物?

    system("top -H -p $pid -n 1 | grep myprocess | wc -l");
    
    Run Code Online (Sandbox Code Playgroud)

perl

7
推荐指数
1
解决办法
204
查看次数

perl正则表达式中的源和运行shell函数

问题

我试图在perl cmd执行块中重用脚本中稍后在bash脚本中定义的shell函数.对匹配一个正则表达式(捕获组#2)后,对perl cmd的调用基本上需要运行定义的shell函数.请参阅下面的代码定义

代码

bash shell脚本中的相关函数定义:

    evalPS() {
        PS_ARGS=$(eval 'echo -en "'${1}'"' | sed -e 's#\\\[##g' -e 's#\\\]##g')
        PS_STR=$((set +x; (PS4="+.$PS_ARGS"; set -x; :) 2>&1) | cut -d':' -f1 | cut -d'.' -f2)
        echo -en "${PS_STR}"
    }
Run Code Online (Sandbox Code Playgroud)

上面的定义使用一些bashisms和hacks来评估用户对字符串的真实提示.

需要在下一个函数中在perl调用该函数:

    remPS() {
        # store evalPS definition
        EVALPS_SOURCE=$(declare -f evalPS)
        # initalize prompt
        eval "$PROMPT_COMMAND" &> /dev/null
        # handle args
        ( [[ $# -eq 0 ]] && cat - || cat "${1}" ) |
        # …
Run Code Online (Sandbox Code Playgroud)

regex bash shell perl function

7
推荐指数
1
解决办法
337
查看次数

标签 统计

perl ×4

system ×2

backticks ×1

bash ×1

function ×1

pipe ×1

regex ×1

shell ×1