誰もそれについて言及しなかったように、ここにを使用するクールな可能性がありprintf
ます。%s
ただし、プレースホルダーはである必要があります*
。
# use %s as the place-holder
template="my%sappserver"
# replace the place-holder by 'whatever-you-like':
server="whatever-you-like"
printf -v template "$template" "$server"
終わり!
関数にそれを実行させたい場合(そして関数に言及している他のすべてのソリューションが醜いサブシェルをどのように使用しているかに注意してください):
#!/bin/bash
# This wonderful function should be called thus:
# string_replace "replacement string" "$placeholder_string" variable_name
string_replace() {
printf -v $3 "$2" "$1"
}
# How to use it:
template="my%sappserver"
server="whatever-you-like"
string_replace "$server" "$template" destination_variable
echo "$destination_variable"
完了(再度)!
あなたがそれを楽しんだことを願っています...今、あなたのニーズにそれを適応させてください!
述べる。この方法を使用するprintf
と、bashの文字列置換よりもわずかに高速になるようです。そして、ここにはサブシェルはまったくありません!うわー、それは西洋で最高の方法です。
面白い。あなたが面白いものが好きなら、あなたはstring_replace
上記の関数を次のように書くことができます
string_replace() {
printf -v "$@"
}
# but then, use as:
string_replace destination_variable "$template" "$server"