当我在Perl和我打电话system(some_command),这将调用some_command上/bin/sh。我希望它改为some_command在另一个 shell 中运行,例如bashor zsh。
在 onzsh或bashfrom上运行命令的一种方法sh是调用zsh -c '<command>'. 这个想法是将它传递给system(),但这需要在 周围使用单引号<command>。
但是如果里面<command>已经有引号怎么办?我如何将其传递给zsh -c?例如:
find . -name 'something*.txt'
Run Code Online (Sandbox Code Playgroud)
上面的示例仅用于说明目的。另一个例子是当我需要将带引号的东西传递给我想从中调用的二进制文件时bash或zsh。
使用system LIST,它不调用外壳。IE
system('/bin/bash', '-c', $your_command);
Run Code Online (Sandbox Code Playgroud)
代替
system("/bin/bash -c '$your_command'");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1052 次 |
| 最近记录: |