답변1
문제 %s
는 형식 지정자가 없다는 것입니다 printf
. %s
인수를 문자열로 바꾸도록 printf에 지시합니다. 더 많은 문자열을 추가하면(이 경우 에 대한 새 호출 set_color
) 어디에 넣어야 할지 알 수 없으므로 문자열은 끝에 추가됩니다.
즉각적인 수정은 더 많은 %s
지정자를 추가하는 것입니다.
printf '%s%s@%s%s:%s%s%s$' (set_color green) $USER $hostname (set_color normal) \
(set_color blue) (prompt_pwd) (set_color normal)
그러나 이는 약간 다루기 힘들지만, 별도의 명령으로 나누면 더 명확해질 수 있습니다.
function fish_prompt
set_color green
printf '%s@%s' $USER $hostname
set_color normal
printf ':'
set_color blue
printf '%s' (prompt_pwd)
set_color normal
printf '$ '
end