Case-Sensitivity
一個命令,pushd 通過參數執行不敏感
如何
pushd
通過不區分大小寫來執行它?嘗試無濟於事$ shopt -s nocasematch ; pushd pdf bash: pushd: pdf: No such file or directory
幫助指導正確的,謝謝。
nocasematch
用於:無大小寫匹配
如果設置,Bash 在執行匹配時以不區分大小寫的方式匹配模式,在執行 case 或 [[ 條件命令時,在執行模式替換詞擴展時,或者在過濾可能的補全作為可程式補全的一部分時。
儘管不推薦/這裡可能有一些重要的警告。一種技巧是使用
nocaseglob
. 創建一個函式並獲取它。nocaseglob
如果設置,Bash 在執行文件名擴展時以不區分大小寫的方式匹配文件名。
例如這裡我們設置 nocaseglob,witch 會忽略大小寫擴展 glob。
給定參數
pdf*
,如果兩者的長度相同,則執行推送。然後重置nocaseglob
nocasepush() { local g g=$(shopt -p nocaseglob) shopt -s nocaseglob for d in "$1"*; do if [ ${#d} -eq ${#1} ]; then pushd "$d" fi break done $g }
然後做
nocasepush pdf
應該進入