変数に値を割り当てて印刷する方法

変数に値を割り当てて印刷する方法

_これまで、文字列を保存してスペースを次に置き換える変数を作成しました。:@

title=$(youtube-dl --get-title https://www.youtube.com/watch?v=8b1JEDvenQU)
echo  "${title}"
echo  "${title}" | sed 's/ /_/g;s/:/@/g'

XGBoost Part 2: Classification
XGBoost_Part_2@_Classification

mod_titleを割り当てたい - >${title}" | sed 's/ /_/g;s/:/@/g'

関数内でこの変数を使用しますが、割り当てて印刷することはできません。

私が試したことは次のとおりです。

title=$(youtube-dl --get-title https://www.youtube.com/watch?v=8b1JEDvenQU)
mod_title = "${title}" | sed 's/ /_/g;s/:/@/g'
echo "${mod_title}"

間違い:

b.sh: line 2: mod_title: command not found

私は初めてbashスクリプトに触れました。だから何をすべきかわかりません。

答え1

コマンドの置き換えyoutube-dl()コマンドに使用するものです$( ... )。再利用する必要があります。また、bashではfor変数の割り当ての周りにスペースを入れてはいけません=

title=$(youtube-dl --get-title https://www.youtube.com/watch?v=8b1JEDvenQU)
mod_title=$(echo "$title" | sed 's/ /_/g;s/:/@/g')
echo "$mod_title"

ただし、これは1回の操作で実行できます。

title=$(youtube-dl --get-title https://www.youtube.com/watch?v=8b1JEDvenQU | sed 's/ /_/g;s/:/@/g')

関連情報