wget -q -T 60 --retry-connrefused -t 5 --waitretry=60 --user=ftp2.company.com|company2013 --password=!company2013 -N -P data/parser/company/ ftp://ftp2.company.com/Production/somedata.zip
我在使用此命令时遇到问题,因为密码包含感叹号。我试过用\转义,试过单引号,它要么给出输出:
wget: missing URL
或者
bash: !company2013: event not found
这实在是太令人沮丧了……

最佳答案

也许这部分需要引用以防止它被视为另一个命令的管道。

--user='ftp2.company.com|company2013'

这也是为了防止历史扩展!:
--password='!company2013'

最终的:
wget -q -T 60 --retry-connrefused -t 5 --waitretry=60 --user='ftp2.company.com|company2013' --password='!company2013' -N -P data/parser/company/ ftp://ftp2.company.com/Production/somedata.zip

如果稍后他们有空格,引用其他部分也是一个好主意:
wget -q -T 60 --retry-connrefused -t 5 --waitretry=60 --user='ftp2.company.com|company2013' --password='!company2013' -N -P "data/parser/company/" "ftp://ftp2.company.com/Production/somedata.zip"

关于bash - 在 wget bash 命令中转义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18120626/

10-13 09:22