_
지금까지 문자열을 저장하고 공백을 다음으로 바꾸는 변수를 만들었습니다.:
@
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')