执行shell命令不会产生任何结果
我在我的Perl脚本中运行shell命令,但它不能按预期工作。 我在一个高山Linux的容器作为我的基本形象。
我的Perl版本v5.24.0。
perl -e 'my $TEST = `ls -al`; print $TEST'
这不会打印任何东西,但可以在Red Hat Linux上的Perl v5.6.1的另一个系统上运行。
这可能是你的问题。
我想你没有定义PATH env var。
尝试使用ls
(/ bin / ls)的完整path:
perl -e 'my $TEST = `/bin/ls -al`; print $TEST'
我testing过类似的情况:
清空path:
PATH="" /usr/bin/perl -e' my $output = `ls -al`; if (!defined($output)) { die("readpipe: $!\n") if $? == -1; die("Child killed by signal ".( $? & 0x7F )."\n") if $? & 0x7F; die("Child exited with error ".( $? >> 8 )."\n") if $? >> 8; } print($output); '
输出:
readpipe: No such file or directory
使用绝对path(/ bin / ls):
PATH="" /usr/bin/perl -e' my $output = `/bin/ls -al`; if (!defined($output)) { die("readpipe: $!\n") if $? == -1; die("Child killed by signal ".( $? & 0x7F )."\n") if $? & 0x7F; die("Child exited with error ".( $? >> 8 )."\n") if $? >> 8; } print($output); '
输出:
total 4531444 drwxr-xr-x 7 rbravo rbravo 4096 May 30 19:40 . drwxr-xr-x 63 root root 4096 Apr 7 14:11 .. -rw------- 1 rbravo rbravo 12248 May 30 19:39 .bash_history ...
- 你如何设置包含私人git仓库的docker图像的ssh密钥?
- 如何在Docker镜像上运行自动升级的ArangoDB 3.1到3.2
- 是否将未绑定的泊坞窗容器卷中的数据提交给图像?
- haproxy / docker未启用侦听程序(检查“绑定”指令)! 退出
- 服务postgresql停止在运行docker容器与postgres图像
- 多个docker运行在同一主机上的pptp客户端
- 在Windows容器上使用复杂的PowerShell脚本构buildDockerfile
- 除了Docker容器中的两个用户以外,如何让我的桌面Ubuntu机器的用户对泊坞窗的完全权限?
- PostgreSQL的docker映像和部署策略