2017-07-18 17 views
0

シェルスクリプトでは、空白に遭遇したときに改行が導入されます。Bash:スペースで改行を置き換えます。

countries = "Brazil Russia India" 
printf "Countries are %s" $countries 

出力のように来る:

Countries are Brazil 
Countries are Russia 
Countries are India 

代わりに、それは

Countries are Brazil Russia India 

として来るべきではない、この動作を克服する方法はありますか?

+1

どのように変数宣言で '='の周りにスペースを使用できますか? 'echo 'を使うこともできます。国は$ countries" – Sundeep

答えて

3

変数を引用符で囲んで1つの引数にします。一般的に

printf "Countries are %s" "$countries" 

あなたはしないように特別な理由がない限り、あなたは常にはあなたの変数を引用する必要があります。

1

このコードを試して問題を解決してください。なぜBashがその動作をするのか理解するには、this answer.の説明を読んでください。その要点は、引用符で囲まれていない空白(または他の特殊文字)の変数は文字列全体として振る舞いません。ので注意してください。

#!/usr/bin/env bash 
countries="Brazil Russia India" 
printf "Countries are %s" "${countries}" 
関連する問題