ubuntu linux自動補全出現問題

2022-07-27 19:54:15 字數 4670 閱讀 2628

問題:輸入: cd p,使用tab補全,期望進入pub_work目錄,雖然自動補全,成功進入目錄;卻給我列印一連串的字元,糾結;

fly@flyme:~$ cd p+ local cur prev words cword

+ _init_completion

+ local exclude= flag outx errx inx optind=1

+ getopts n:e:o:i:s flag

+ compreply=()

+ local 'redir=@(?([0-9])<|?([0-9&])>?(>)|>&)'

+ _get_comp_words_by_ref -n '<>&' cur prev words cword

+ local exclude flag i optind=1

+ words=()

+ local cur cword words

+ upargs=()

+ upvars=()

+ local upargs upvars vcur vcword vprev vwords

+ getopts c:i:n:p:w: flag -n '<>&' cur prev words cword

+ case $flag in

+ exclude='<>&'

+ getopts c:i:n:p:w: flag -n '<>&' cur prev words cword

+ [[ 6 -ge 3 ]]

+ case $ in

+ vcur=cur

+ let 'optind += 1'

+ [[ 6 -ge 4 ]]

+ case $ in

+ vprev=prev

+ let 'optind += 1'

+ [[ 6 -ge 5 ]]

+ case $ in

+ vwords=words

+ let 'optind += 1'

+ [[ 6 -ge 6 ]]

+ case $ in

+ vcword=cword

+ let 'optind += 1'

+ [[ 6 -ge 7 ]]

+ __get_cword_at_cursor_by_ref '<>&' words cword cur

+ words=()

+ local cword words

+ __reassemble_comp_words_by_ref '<>&' words cword

+ local exclude i j line ref

+ [[ -n <>& ]]

+ exclude='<>&'

+ eval cword=1

++ cword=1

+ [[ -n <>& ]]

+ line='cd p'

+ (( i=0, j=0 ))

+ (( i < 2 ))

+ [[ 0 -gt 0 ]]

+ ref='words[0]'

+ eval 'words[0]=$$'

++ words[0]=cd

+ line=' p'

+ [[ 0 == 1 ]]

+ (( i++, j++ ))

+ (( i < 2 ))

+ [[ 1 -gt 0 ]]

+ [[ p == +([<>&]) ]]

+ ref='words[1]'

+ eval 'words[1]=$$'

++ words[1]=p

+ line=

+ [[ 1 == 1 ]]

+ eval cword=1

++ cword=1

+ (( i++, j++ ))

+ (( i < 2 ))

+ [[ 2 == 1 ]]

+ local i cur index=4 'lead=cd p'

+ [[ 4 -gt 0 ]]

+ [[ -n cd p ]]

+ [[ -n cdp ]]

+ cur='cd p'

+ (( i = 0 ))

+ (( i <= cword ))

+ [[ 4 -ge 2 ]]

+ [[ cd != \c\d ]]

+ [[ 0 -lt 1 ]]

+ local old_size=4

+ cur=' p'

+ local new_size=2

+ index=2

+ (( ++i ))

+ (( i <= cword ))

+ [[ 2 -ge 1 ]]

+ [[ != \p ]]

+ cur=p

+ (( index-- ))

+ [[ 1 -ge 1 ]]

+ [[ p != \p ]]

+ [[ 1 -lt 1 ]]

+ (( ++i ))

+ (( i <= cword ))

+ [[ -n p ]]

+ [[ ! -n p ]]

+ [[ 1 -lt 0 ]]

+ local words cword cur

+ _upvars -a2 words cd p -v cword 1 -v cur p

+ (( 10 ))

+ (( 10 ))

+ case $1 in

+ [[ -n 2 ]]

+ printf %d 2

+ [[ -n words ]]

+ unset -v words

+ eval 'words=("$")'

++ words=("$")

+ shift 4

+ (( 6 ))

+ case $1 in

+ [[ -n cword ]]

+ unset -v cword

+ eval 'cword="$3"'

++ cword=1

+ shift 3

+ (( 3 ))

+ case $1 in

+ [[ -n cur ]]

+ unset -v cur

+ eval 'cur="$3"'

++ cur=p

+ shift 3

+ (( 0 ))

+ [[ -n cur ]]

+ upvars+=("$vcur")

+ upargs+=(-v $vcur "$cur")

+ [[ -n cword ]]

+ upvars+=("$vcword")

+ upargs+=(-v $vcword "$cword")

+ [[ -n prev ]]

+ [[ 1 -ge 1 ]]

+ upvars+=("$vprev")

+ upargs+=(-v $vprev "$")

+ [[ -n words ]]

+ upvars+=("$vwords")

+ upargs+=(-a$ $vwords "$")

+ (( 4 ))

+ local cur cword prev words

+ _upvars -v cur p -v cword 1 -v prev cd -a2 words cd p

+ (( 13 ))

+ (( 13 ))

+ case $1 in

+ [[ -n cur ]]

+ unset -v cur

+ eval 'cur="$3"'

++ cur=p

+ shift 3

+ (( 10 ))

+ case $1 in

+ [[ -n cword ]]

+ unset -v cword

+ eval 'cword="$3"'

++ cword=1

+ shift 3

+ (( 7 ))

+ case $1 in

+ [[ -n prev ]]

+ unset -v prev

+ eval 'prev="$3"'

++ prev=cd

+ shift 3

+ (( 4 ))

+ case $1 in

+ [[ -n 2 ]]

+ printf %d 2

+ [[ -n words ]]

+ unset -v words

+ eval 'words=("$")'

++ words=("$")

+ shift 4

+ (( 0 ))

+ _variables

+ [[ p =~ ^(\$\")

+ return 0

ub_work/

+ cd pub_work/

fly@flyme:pub_work$

原來是開啟了指令碼除錯功能,關閉就好啦;

用於指令碼除錯。set是把它下面的命令列印到螢幕

set -x 是開啟 set +x是關閉 set -o是檢視 (xtrace),set去追中一段**的顯示情況。

執行set -x後,對整個指令碼有效。

自動補全 Docker 命令自動補全?要的

不知道這個小夥伴有多久沒用過 docker 了,突然對我說 docker 命令怎麼發生變化了 docker run 變成了 docker container run 他說,本來對 docker 命令就不熟悉,這下感覺更加混亂了。其實個人看來,這麼變化還使得命令看著更加規整 當在命令列直接輸入 doc...

自動補全 Docker 命令自動補全?要的

不知道這個小夥伴有多久沒用過 docker 了,突然對我說 docker 命令怎麼發生變化了 docker run 變成了docker container run 他說,本來對 docker 命令就不熟悉,這下感覺更加混亂了。其實個人看來,這麼變化還使得命令看著更加規整 當在命令列直接輸入docke...

郵箱自動補全

差不多半年前寫了個很挫的郵箱補全 今天寫了個還不錯的 js function return function autoemail input 在提示框上的事件 this.auto.onmousedown this.auto.onmouseover this.auto.onmouseup functi...