撰寫多行別名命令:
alias cdvf='(ID=$(id -u $USER);
gvfs_uri="mtp:host=Xiaomi_Redmi_10A_IJLZKJLNNRLBSSVO/Internal shared storage/Android/data";
echo "$gvfs_uri";
dfolder="/run/user/$ID/gvfs/""$gvfs_uri";
echo "$dfolder";
cd "$dfolder")'
跟蹤運行時命令:
set -x
現在將別名粘貼到控制臺,呼叫我的別名--cdvf:它永遠不會進入目標檔案夾/Android/data,但最后一個命令被
cd '/run/user/1000/gvfs/mtp:host=Xiaomi_Redmi_10A_IJLZKJLNNRLBSSVO/Internal shared storage/Android/data'bash 決議。
debian@debian:~$ cdvf
id -u debian
ID=1000
gvfs_uri='mtp:host=Xiaomi_Redmi_10A_IJLZKJLNNRLBSSVO/Internal shared storage/Android/data'
echo 'mtp:host=Xiaomi_Redmi_10A_IJLZKJLNNRLBSSVO/Internal shared storage/Android/data'
mtp:host=Xiaomi_Redmi_10A_IJLZKJLNNRLBSSVO/Internal shared storage/Android/data
dfolder='/run/user/1000/gvfs/mtp:host=Xiaomi_Redmi_10A_IJLZKJLNNRLBSSVO/Internal shared storage/Android/data'
echo '/run/user/1000/gvfs/mtp:host=Xiaomi_Redmi_10A_IJLZKJLNNRLBSSVO/Internal shared storage/Android/data'
/run/user/1000/gvfs/mtp:host=Xiaomi_Redmi_10A_IJLZKJLNNRLBSSVO/Internal shared storage/Android/data
cd '/run/user/1000/gvfs/mtp:host=Xiaomi_Redmi_10A_IJLZKJLNNRLBSSVO/Internal shared storage/Android/data'
debian@debian:~$
debian@debian:~$ cd '/run/user/1000/gvfs/mtp:host=Xiaomi_Redmi_10A_IJLZKJLNNRLBSSVO/Internal shared storage/Android/data'
cd '/run/user/1000/gvfs/mtp:host=Xiaomi_Redmi_10A_IJLZKJLNNRLBSSVO/Internal shared storage/Android/data'
debian@debian:/run/user/1000/gvfs/mtp:host=Xiaomi_Redmi_10A_IJLZKJLNNRLBSSVO/Internal shared storage/Android/data$
debian@debian:/run/user/1000/gvfs/mtp:host=Xiaomi_Redmi_10A_IJLZKJLNNRLBSSVO/Internal shared storage/Android/data$
將最后一行復制到終端運行,進入目標檔案夾,為什么cdvf不能進入目標檔案夾/Android/data?
uj5u.com熱心網友回復:
它正在更改為該目錄。但是,您()在您的別名中使用:創建一個subshel??l。在子shell 中,您位于正確的目錄中,但隨后子shell 退出,并且您位于之前所在的目錄中(在“當前”shell 中)。
從您的別名中洗掉括號。
我假設您使用括號來避免變數污染您的外殼。您將希望使用一個函式:
cdvf() {
local ID gvfs_uri dfolder
ID=$(id -u "$USER")
gvfs_uri="mtp:host=Xiaomi_Redmi_10A_IJLZKJLNNRLBSSVO/Internal shared storage/Android/data"
echo "$gvfs_uri"
dfolder="/run/user/$ID/gvfs/$gvfs_uri"
echo "$dfolder"
cd "$dfolder"
}
正如 bash 手冊中所說的Aliases
對于幾乎所有目的,shell 函式都比別名更受歡迎。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/517579.html
標籤:重击别名
