代わりにIFS=",";echo {1..5}
出力するにはどうすればよいですか? bash echo {1..5}を作成してコンマで値を出力するにはどうすればよいですか?1,2,3,4,5
1 2 3 4 5
ベストアンサー1
Bashの組み込み機能を使用してください。
5
末尾のコンマを避けるために区切る必要があるため、これは少し見苦しくなります。
$ printf '%s,' {1..4}; echo 5
1,2,3,4,5
その後、printf
変数に直接出力できますが、パラメータ拡張を使用してこの問題を解決し、最後のコンマを削除できます。
$ printf -v tmpvar "%s," {1..5}; echo "${tmpvar%,}"
1,2,3,4,5
または、"$*"
最初の文字を使用して接続する with ですIFS
。これはグローバル状態を破壊しますが、サブシェルまたは関数で実行すると簡単に回避できますlocal IFS
。
$ IFS=,; set -- {1..5}; echo "$*";
1,2,3,4,5
制限が変数にある場合、最も簡単な方法はループを使用して手動で実行することです。中括弧拡張範囲では、変数をエンドポイントとして使用できないためです。繰り返しますが、上限は特別なケースです。
a=1; b=5
for (( i=a ; i<b ; i++ )); do
printf "$i,";
done;
printf "$b\n"