如何为变量赋值并打印它

如何为变量赋值并打印它

到目前为止,我设法创建一个变量来存储字符串并用 和替换_空白:@

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')

相关内容