저는 컬러 라인이 포함된 기본 스크립트를 작성했습니다.
#!/bin/bash
g="\e[32m"
_0="\e[0m"
printf "$g name $_0"
스크립트는 잘 실행되지만shellcheck.net다음 메시지를 받았습니다: Don't use variables in the printf format string
.
또 다른 문제는 스크립트를 #!/bin/sh
스크립트로 변환할 때 다음 출력이 제공되는 올바르게 실행되지 않는다는 것입니다.
\e[32m name \e[0m
사용해봤는데 echo -e
이번에 는 지원되지 않는다고 sh
나오 더군요 -e
. 이 문제를 해결하기 위해 공통 코드 줄을 어떻게 작성할 수 있습니까? 감사해요.
답변1
이것을 사용할 수 있으며 bash 또는 sh에서 작동합니다.
#!/bin/bash
# \e not supported by POSIX; use \033 (octal) instead.
g=$(printf '\033[32m')
_0=$(printf '\033[0m')
printf '%s name %s foo' "$g" "$_0"