到目前为止,我设法创建一个变量来存储字符串并用 和替换_
空白:
@
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"
不过,您可以通过一次操作来完成此操作:
title=$(youtube-dl --get-title https://www.youtube.com/watch?v=8b1JEDvenQU | sed 's/ /_/g;s/:/@/g')