首页 > 解决方案 > xargs 中的转义字符'

问题描述

你好我想运行这个命令:

cat webs.txt | xargs -n1 -P8 bash -c 'curl -ks -x http://127.0.0.1:8080 -A "Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0'" $0 -m 4 1>/dev/null'

我在这里遇到了麻烦:Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0' 带有“'”字符,我尝试过:

cat webs.txt | xargs -n1 -P8 bash -c 'curl -ks -x http://127.0.0.1:8080 -A "Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0\'" $0 -m 4 1>/dev/null'

但它不起作用,我想要的是像这样附加 '" :

Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0'"

问候

标签: linuxbashescapingxargs

解决方案


你可以试试这个xargs

xargs -n1 -P8 bash -c "url=\"\$0\"; \
curl -ks -x http://127.0.0.1:8080 -A \"Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0'\" \$url -m 4 1>/dev/null" {} < webs.txt

推荐阅读