このコードがあり、正しい結果が印刷されますが、最後の行のエコーを変数にインポートする方法がわかりません。
# hostname is 'tech-news-blog-324344' . Setting it into array host_name_array
IFS='-' read -r -a host_name_array <<< "$(hostname)"
#removing the last part of string after last "-"
unset 'host_name_array[${#host_name_array[@]}-1]'
( IFS=$'-'; echo "${host_name_array[*]}" )
#result is 'tech-news-blog'
最後の行の値を変数にどのように入れることができますか?私は以下を試しました:
( IFS=$'-'; URL="${host_name_array[*]}" )
しかし、私が得た結果は、「-」の代わりにアレイ間にスペースがある「Technology News Blog」です。
ベストアンサー1
実行時のIFS='-' read -r -a host_name_array <<< "$(hostname)"
配列は(tech news blog 324344)
。
最後の要素を削除した後の unset 'host_name_array[${#host_name_array[@]}-1]'
配列はです(tech news blog)
。
したがって、echoを取得するには、次tech-news-blog
のようにいくつかの代替が必要です。echo "${host_name_array[*]}"
tech news blog
trで:echo "${host_name_array[*]}" | tr ' ' '-'
sed:echo "${host_name_array[*]}" | sed 's/ /-/g'