Bash에서는 다음과 같은 변수를 설정했습니다 o='OneDrive - MyCompany'
. 그런 다음 다음을 입력하여 사용합니다 cd "$o"/Docu
. 그런 다음 Tab 키를 눌러 폴더 이름에 단어 완성을 수행합니다. 밝혀지다 cd $o/Documents
. Enter 키를 눌렀지만 큰따옴표를 훔쳐서 실패했습니다. 하아! ? ! "$o"
디렉토리 이름에 대한 빠른 단축키로 사용하고 싶습니다 . 입력하고 싶지 않고 "$o/Docu
TAB을 누른 다음 를 누르면 "
작동합니다. 입력을 시작할 때 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"
. 이것이 바로 나에게 필요한 것입니다.