gpt4 book ai didi

linux - 传递其中包含点运算符的命令行参数

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:18:46 25 4
gpt4 key购买 nike

我在尝试解析其中一个网站时需要通过

$url="http://www.hotels.com/search/search.html?destinationName=Dallas%2C+Texas%2C+United+States&arrivalDate=10%2F27%2F11&departureDate=10%2F31%2F11&numberOfRooms=1&numberOfAdults=1";
system("perl x.pl $url"); // this is giving me error because the $url consists of dot operator.

最佳答案

system() 的多参数在这种情况下更好:

system('perl', 'x.pl', $url);

当您向 system() 传递一个包含任何 shell 元字符(包括空格)的字符串时,它会通过 /bin/sh 调用它(至少在 Unix- like systems) -- 这意味着诸如 & 字符之类的东西将由 shell 解释,除非(如@MikePlayle 建议的那样)您引用它。

但是当您给 system() 多个参数时,它会绕过 shell 并直接执行第一个参数中指定的命令,并将其他参数传递给它。

当您希望 shell 处理元字符时,单参数形式很有用——例如,如果您想进行 I/O 重定向(包括管道)和/或通配符扩展,可以 在 Perl 中完成,但要付出更多努力。

perldoc perlfunc 并搜索“系统”以获取更多信息,或 see here .

关于linux - 传递其中包含点运算符的命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7884711/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com