问题标签 [qx]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
perl - 如何在 Perl 中更改系统调用的标准输出文件句柄?
我正在尝试使用 select 更改系统函数的标准输出。但它似乎不起作用。系统输出显示在控制台上,而不是重定向到文件。
虽然我可以system "dir /a > out.txt"
,但我想知道为什么上面的代码不起作用。
perl - 如果我使用 backtics 调用 curl 的输出,如何将其输出到 Perl 中的变量中?
我正在尝试将 curl 调用的响应转换为 perl 中的变量。
不起作用。当我在命令行上运行它时,curl 调用会在终端中正确打印其所有输出,但变量没有填充该数据。
有没有办法在不安装和调用 Perl curl 库的情况下做到这一点?
perl - 如何为 qx(command) 实现超时?
我如何在这段代码中实现超时:如果“hwinfo --usb”命令在一定时间后没有返回任何内容,(停止命令并)执行返回或从子 _usb_device 死亡。
perl - 如何模拟 Perl 的内置反引号运算符?
我想对我的一个使用反引号的 Perl 程序进行单元测试。有没有办法模拟反引号,以便它们执行与执行外部命令不同的操作?
另一个问题显示了我需要什么,但在 Ruby 中。不幸的是,我不能选择在这个项目中使用 Ruby,也不想避免反引号。
ajax - 在 perl 中分叉,但从子进程中的系统调用中获取退出状态
我所做的:
- 对 cgi 脚本进行 ajax 调用。
- Cgi 脚本分叉,但父级立即返回响应消息。
- 孩子进行系统调用,但需要退出代码和任何错误消息。
伪代码:
我的问题:
由于 ($SIG{CHLD} = 'IGNORE') 设置为 -1,因此无法从 qx() 获取正确的返回码 ($?) 和任何错误消息。如果我删除 $SIG{CHLD} 语句,客户端网页不会收到来自父级的响应消息,直到孩子被收割之后。
perl - 如何在 qx 中使用 __FILE__?
我试图在 Perl 脚本的顶部分配一个常量,如下所示:
__FILE__
不会在qx
运算符内部进行插值,这会导致此操作失败。我怎样才能实现我想要的,即在调用shell__FILE__
之前插入。readlink
请注意:将命令存储在中间变量中不是一种选择。
perl - Perl -> How return value of qx(perl file)
I need to know how is possible return values of Perl file from other Perl file.
In my first file i call to the second file with sentence similar to:
I have tried with exit and return to get this data but is not possible.
Any idea?
linux - mod_perl2 脚本中的某些二进制文件运行,而其他二进制文件不运行(尽管有 ls 可见性和 +x)
在带有 perl 5.10.1 的 CentOS 6.4 上的 Apache 2.2 上。
我正在尝试从 mod_perl 脚本中获取远程目录列表,该脚本显然(如果我die qx(id)
)运行为apache
. 但我什至无法在ssh
没有参数的情况下运行,只是让它打印它的帮助信息。所以这就是我在这个问题中要问的问题 - 这不是ssh
无法连接。
死于:
和:
死于:
好的,所以,它可以找到它,看到它,并对其具有执行权限(对于 /usr/bin 和 /usr 也是如此。)但是然后:
死于空数组,所以我尝试了:
...死于:
为什么是这样?我怎样才能得到die qx(ssh)
或die qx(/usr/bin/ssh)
死亡的期望值:
有趣的是,从 bash 提示符中我得到了这个:
那么......我怎样才能ls
从一个不可用但又不可用的帐户运行ssh
呢?它们都是程序,为什么它们在这里的行为不同?
更新:不只是ssh
,但我无法弄清楚模式:gawk
,tar
,ping
也不起作用。然而df
, ls
, dir
,pwd
都可以。但:
因此,它们都设置了所有“x”位(除了 ping 其一个“s”,但请参见下面的错误代码),例如,ssh
并且dir
具有相同的 ACL。那么,为什么应该ssh
并且gawk
未能提供任何输出却又成功了呢?(完整路径或没有。)dir
ls
更新:更令人困惑的是,/bin/gawk
失败并显示相同的消息,但代码为 256,/bin/tar
同样/bin/ping
,代码为 512。
更新:好的,这部分是有道理的:如果我从命令行运行失败的二进制文件,然后echo $?
立即运行,ssh
给出 255,ping
给出tar
2,gawk
给出 1。这些是我在 mod_perl2 中得到的缩小版本。因此,似乎返回码不是 0 的任何东西都不起作用。可能它正在输出到 STDERR,因此 STDOUT 不捕获任何内容,因此返回空白。
啊哈,这就是答案——将发布。
c++ - 从 Perl 脚本执行 C++ 程序;它需要编译器吗?
这次我有一个更复杂的问题。我写了一个简短的 Perl 程序,我的最终输出在一个数组中。我想在我的输出的每个元素上在我的 Perl 脚本中执行一个带有 .hpp 文件扩展名的 C++ 脚本(我已经从 UCSC 基因组浏览器下载了源代码)。这对我来说真的很难,因为我是一个整体编程的初学者,对 C++ 一无所知。我已经阅读了一些内容,我认为对我来说最好的方法是使用 qx 呼叫。我已经尝试过了,当我运行我的 Perl 脚本时,它只会在文本编辑器中打开 .hpp 文件。我不确定这是否是因为我错误地分配了 .hpp 文件扩展名以使用编辑器打开,或者我是否需要编译器来运行 .hpp 文件。
perl - 是否可以在 qx 中调用函数?
这是我想要的一些 Perl 代码:
不使用是否可以达到相同的效果$value
?就像是
我知道为什么第二种方法不起作用,它只是为了展示这个想法。