在wget bash命令中转义

Inn*_*per 3 bash ubuntu escaping wget

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

这真是令人失望......

kon*_*box 6

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

--user='ftp2.company.com|company2013'
Run Code Online (Sandbox Code Playgroud)

这也是为了防止历史扩张!:

--password='!company2013'
Run Code Online (Sandbox Code Playgroud)

最后:

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
Run Code Online (Sandbox Code Playgroud)

如果稍后他们有空格,引用其他部分也是一个好主意:

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"
Run Code Online (Sandbox Code Playgroud)