我有字符串“http://example.com http://example2.com”我如何将它们变成两个不同的变量?
我对Linux很新。 谢谢,所有的帮助表示赞赏。
答案 0 :(得分:2)
使用for
循环
str="http://example.com http://example2.com"
for word in $str
do
echo $word
done
答案 1 :(得分:2)
自发地,我不会使用grep
,而是read
:
EXAMPLE="http://example.com http://example2.com"
read URL1 URL2 <<<"$EXAMPLE"
<<<
语法假定您正在使用Bash。否则,你必须这样做:
read URL1 URL2 <<EOF
$EXAMPLE
EOF
答案 2 :(得分:2)
其他答案都很棒,但有很多方法可以解决这个问题,所以这是另一个。 :-)由于你的字符串是以空格分隔的,而你的shell的默认分隔符(IFS
)包含空格,你可以利用这个:
mystr="http://example.com http://example2.com"
set -- $mystr
foo=$1 # http://example.com
bar=$2 # http://example2.com
(在此实例中并非严格要求--
之后的set
,但如果您的字符串由于某种原因恰好以短划线开头,它会阻止发生一些愚蠢的事情。)
答案 3 :(得分:2)
作为我之前的一个替代答案,您还可以使用以下语法,该语法应该适用于所有标准shell:
EXAMPLE="http://example.com http://example2.com"
URL1="${EXAMPLE%% *}"
URL2="${EXAMPLE#* }"
您可以查看Bash / Dash联机帮助页以获取有关其工作方式的更多信息。