명령 대체 $(...)에서 첫 번째가 아닌 토큰을 사용하여 Bash 탭 완료 시 오류 발생

명령 대체 $(...)에서 첫 번째가 아닌 토큰을 사용하여 Bash 탭 완료 시 오류 발생

첫 번째 명령에 탭 완성 사용$(...)

cat $(w

공을 쳤을 때, tab나는 언제나 그렇듯이 잠재적인 완료를 얻습니다.

$ cat $(w
w                   wc                  which               wicd-client         wofm2opl            wpa_supplicant

그러나 첫 번째 위치가 아닌 경우 bash는 이상한 오류를 표시합니다.

$ cat $(which w

프로그램

$ cat $(which w-bash: unexpected EOF while looking for matching `)'
-bash: syntax error: unexpected end of file

sh명령 대체 구문은 첫 번째 위치에 대해 동일한 예상 동작을 보여 주지만 후속 위치에서는 그렇지 않습니다.

$ cat `w
w                   wc                  which               wicd-client         wofm2opl            wpa_supplicant

$ cat `which w

자동완성 기능이 전혀 없습니다.

답변1

분명히 터미네이터를 찾고 있는데 ), 그 후에는 탭을 누를 수 없습니다. cat $(which w 왜냐하면 w스스로 수행해야 하기 때문입니다. 일부 매개변수 이름을 입력하면 bash 완료가 매개변수 완성을 위한 것이 아닌 것 같습니다. 명령 완성을 위한 것입니다.

이 bash를 설치한 후 이 동작을 시도해 보십시오. 아마도 대부분의 작업을 수행할 것입니다.

    yum install bash-completion 
    source /etc/bash_completion 

관련 정보