[英]Why does my command stop working when I put it into an alias?
我正在嘗試運行以下命令comm -23 <(pacman -Qqe | sort) <(awk '{print $1}' /desktopfs-pkgs.txt | sort)
我得到以下 output
autoconf
automake
bison
chromium
code
discord
fakeroot
flex
lib32-mesa-vdpau
lib32-vulkan-intel
lib32-vulkan-radeon
m4
make
mesa-vdpau
nerd-fonts-complete
paru
patch
pkgconf
spotify
terminator
vim
vulkan-intel
vulkan-radeon
xf86-video-amdgpu
xf86-video-ati
xf86-video-intel
xf86-video-nouveau
我的目標是讓我知道我明確安裝的軟件包與 Manjaro 附帶的軟件包之間的區別。
它正確地給了我想要的 output 並且工作正常,但是當我將它放入我的zshrc
中的別名時,它失敗了。
在我的zshrc
,它看起來如下alias paccom="comm -23 <(pacman -Qqe | sort) <(awk '{print $1}' /desktopfs-pkgs.txt | sort)"
尋源后,輸出如下。
~: paccom ✔
acpi
acpid
adobe-source-han-sans-cn-fonts
adobe-source-han-sans-jp-fonts
adobe-source-han-sans-kr-fonts
adobe-source-sans-fonts
alsa-firmware
alsa-utils
amd-ucode
android-tools
android-udev
ark
autoconf
automake
avahi
b43-fwcutter
bison
...
基本上,這似乎是整個pacman -Qqe
,好像它實際上並沒有正確地進行文件比較。
關於行為改變的原因有什么想法嗎?
$1 在定義別名時被 shell 替換,即 awk 永遠不會看到$1
。 您可以通過顯示您的別名來驗證這一點
alias paccom
您必須在別名$
中轉義以防止替換,或者更好的是(為您省去更多麻煩)定義 function 而不是別名。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.