변수에 값을 할당하고 인쇄하는 방법

변수에 값을 할당하고 인쇄하는 방법

_지금까지 문자열을 저장하고 공백을 다음으로 바꾸는 변수를 만들었습니다.:@

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

관련 정보