파일 이름 확장을 위해 Tab 키를 누르면 변수 확장에 필요한 따옴표가 제거됩니다.

파일 이름 확장을 위해 Tab 키를 누르면 변수 확장에 필요한 따옴표가 제거됩니다.

Bash에서는 다음과 같은 변수를 설정했습니다 o='OneDrive - MyCompany'. 그런 다음 다음을 입력하여 사용합니다 cd "$o"/Docu. 그런 다음 Tab 키를 눌러 폴더 이름에 단어 완성을 수행합니다. 밝혀지다 cd $o/Documents. Enter 키를 눌렀지만 큰따옴표를 훔쳐서 실패했습니다. 하아! ? ! "$o"디렉토리 이름에 대한 빠른 단축키로 사용하고 싶습니다 . 입력하고 싶지 않고 "$o/DocuTAB을 누른 다음 를 누르면 "작동합니다. 입력을 시작할 때 Tab 키를 눌러 나중에 경로의 내용을 확장할 수 있는지 여부에 대해 생각하고 싶지 않습니다. 나는 큰따옴표로 묶인 변수에 대한 규칙을 따르고 싶지만 여기서는 작동하지 않습니다.

변수를 정의할 때 공백 앞에 백슬래시를 넣고 변수를 확장한 후에는 백슬래시를 존중할 수 있었으면 좋겠습니다. 내가 할 수 있는 방법이 있나요? 이것은 이 문제를 아주 잘 해결할 수 있습니다.

이 문제를 처리하는 가장 좋은 방법은 무엇입니까? 나는 시스템과 싸우고 싶지 않았지만 빠르고 자연스럽게 느껴지는 것을 원했습니다.

예상되는 동작에 더 가까워지기 위해 변경해야 하는 셸 설정이 있습니까? 저는 25년 동안 tcsh를 사용해왔는데 이제 막 bash로 전환했습니다. 배우고 적응할 것이 많습니다. 현재 쉘 옵션은 다음과 같습니다.

$ shopt
autocd          off
cdable_vars     off
cdspell         off
checkhash       off
checkjobs       on
checkwinsize    off
cmdhist         on
compat31        off
compat32        off
compat40        off
compat41        off
compat42        off
compat43        off
completion_strip_exe    off
complete_fullquote      on
direxpand       off
dirspell        off
dotglob         on
execfail        off
expand_aliases  on
extdebug        off
extglob         off
extquote        on
failglob        off
force_fignore   on
globasciiranges off
globstar        on
gnu_errfmt      off
histappend      on
histreedit      on
histverify      on
hostcomplete    on
huponexit       off
inherit_errexit off
interactive_comments    on
lastpipe        off
lithist         off
login_shell     on
mailwarn        off
no_empty_cmd_completion off
nocaseglob      off
nocasematch     off
nullglob        off
progcomp        on
promptvars      on
restricted_shell        off
shift_verbose   off
sourcepath      on
xpg_echo        off

참고: 이 질문은 다음 질문과 다릅니다.쉘 변수에 대해 탭 확장/자동 완성을 사용하기 위해 cd를 사용할 수 없는 이유는 무엇입니까?그러나 그것은 같은 대답을 가지고 있는 것으로 밝혀졌습니다.

답변1

방금 답을 찾았어요쉘 변수에 대해 탭 확장/자동 완성을 사용하기 위해 cd를 사용할 수 없는 이유는 무엇입니까? 를 설정해야 합니다 shopt -s direxpand. 이렇게 하면 변수가 확장되고 공백을 이스케이프 처리하기 위해 원하는 백슬래시가 추가됩니다.내가 사용하지 않더라도"$o". 이것이 바로 나에게 필요한 것입니다.

관련 정보