_
これまで、文字列を保存してスペースを次に置き換える変数を作成しました。:
@
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')