我有一个在unix机器(Linux01)上运行的perl脚本,可以执行各种操作。我想在脚本中添加一些东西,这将允许我在我有权限/访问的网络上的Windows机器(Wdinows01)上运行系统命令。
我想做这样的事情:
my $result = `cat \\Windows01\tmp\test\fileinfo.txt`;
显然上面的代码遗漏了很多,但这是否可能或者这比我想的更复杂?
答案 0 :(得分:2)
反引号遵循与双引号字符串相同的编码规则,这意味着
`...`
与
相同readpipe(qq`...`)
所以让我们看看你传递给shell的字符串:
$ perl -E'say qq`cat \\Windows01\tmp\test\fileinfo.txt`'
cat \Windows01 mp est
ileinfo.txt
糟糕! \\
生成反斜杠,\t
会生成一个标签,\f
会生成换页符。修正:
my $result = `cat \\\\Windows01\\tmp\\test\\fileinfo.txt`;
(假设您的cat
采用Windows路径。)