echo 문에 명령을 포함하는 방법은 무엇입니까?

echo 문에 명령을 포함하는 방법은 무엇입니까?

매우 간단하지만 여기서 정확히 이 질문을 묻는 질문을 찾지 못했습니다.

나는 이것이 효과가 있을 것이라고 생각했지만 그렇지 않습니다.

echo "Your disk usage is ${df -k -h}."

위의 작업을 어떻게 수행합니까?

답변1

사용 $(), 사용하지 않음${}

echo "Your disk usage is $(df -h)."

df -h여러 줄의 출력(헤더용 하나, 마운트된 각 파일 시스템용 하나)이 있으므로 echo 문에 포함하면 매우 보기 흉해 보입니다 .

표시하려는 내용(예: 홈 디렉터리가 포함된 파일 시스템의 디스크 사용량)을 보다 구체적으로 지정하고 인쇄하려는 세부 정보만 추출하여 이 문제를 해결할 수 있습니다. 예를 들어:

printf 'Your disk usage on %s is %s\n' $(df -h ~ | awk 'NR==2 {print $6, $3}') 

답변2

다음 ksh을 수행해야 합니다.

echo "... ${df -k -h;}"

현재 디렉터리가 위치한 파일 시스템의 사용률을 표시하고 util-linux최신 패키지가 설치된 Linux 시스템을 사용하는 경우 다음을 수행해야 합니다.

printf "Your disk usage is:\t"
(until findmnt -noTARGET,USE% .;do cd ..; done)

관련 정보