在我的bash脚本中,我想检查字符串是否包含空格,如果它确实用%20
替换字符串中的空格以将字符串解析为网站。
我对bash很新,应该是最好的方式?
我知道如何在c#中使用它,但bash与我看到的有点不同。
答案 0 :(得分:3)
请参阅bash手册中的“Shell参数扩展”。
对于您的情况,假设一个名为x的变量
$ x="one two three"
$ echo $x
one two three
$ echo ${x// /%20}
one%20two%20three
(*编辑:链接到gnu.org bash手册)
答案 1 :(得分:2)
在Debian和Ubuntu上,可以安装gridsite-clients
包:
sudo apt-get install gridsite-clients
此程序包附带一个名为urlencode
的命令,该命令使用百分比编码对字符串进行编码。这有点超出你的要求,因为例如百分比本身也被编码(到%25
)。
例如:
$ urlencode "foo bar"
foo%20bar
$ urlencode "foo%bar"
foo%25bar
$ urlencode "foo-bar/baz"
foo-bar%2Fbaz
答案 2 :(得分:2)
使用sed
[在shell脚本中]很容易做到:
#!/bin/bash -
str="abc def ghi"
echo "$str"
hstr=`echo "$str" | sed -e 's/ /%20/g'`
echo "$hstr"