전체 줄을 파일에 에코할 수 없습니다.

전체 줄을 파일에 에코할 수 없습니다.

다음 줄을 파일에 에코하는 방법을 알 수 없습니다. 그 중 일부만 파일에 포함됩니다.

echo perl -e "printf(\"%.1lf%%\n\", ($reserved_block_count * 100.0 ) / $block_count);">>Show_Percent_Reserved_Blocks.sh

아래 스크립트를 실행하면 다음과 같은 결과가 나타납니다.

andyk_~/Downloads$ Show_Percent_Reserved_Blocks.sh
/home/andy/bin/Show_Percent_Reserved_Blocks.sh: line 2: Block: command not found
/home/andy/bin/Show_Percent_Reserved_Blocks.sh: line 3: Reserved: command not found
syntax error at -e line 1, near "/ )"
Execution of -e aborted due to compilation errors.

#!/bin/bash
Block count:              421958912
Reserved block count:     4219589
perl -e "printf(\"%.1lf%%\n\", ($reserved_block_count * 100.0 ) / $block_count);"

답변1

문제는 큰따옴표를 사용했기 때문에 변수 참조( $reserved_block_count, $block_count)가 현재(호출하는) 쉘 환경에서 확장된다는 것입니다. 작은따옴표로 전체 내용을 인용해야 합니다.

echo 'perl -e "printf(\"%.1lf%%\n\", ($reserved_block_count * 100.0 ) / $block_count);"' >>Show_Percent_Reserved_Blocks.sh

관련 정보