cd
Komutun işlevselliğini ihtiyaçlarıma göre özelleştirmek istiyorum .
Aşağıdaki işlevi tanımladım -
function cd () { cd "$@" && pushd "$@"; }
Bu işlevin amacı, dizini otomatik olarak yığının üzerine itmektir, böylece pushd .
her seferinde elle yazma çabasını kurtarır .
Bununla birlikte, yukarıdaki işlev sonsuz bir özyinelemeli işlevdir, çünkü çağrı çağrısı yerleşik cd
değil, işlevin kendisi olarak yorumlanır cd
.
cd
Bu işlevdeki yerleşik öğeye nasıl başvurabilirim?
Takma adların kaçabileceğini biliyorum \
. İşlevlerden kaçmanın veya yerleşiklere daha açık bir şekilde referans vermenin yolu nedir?
Not: İşlevimi başka bir şeyle yeniden adlandırmak istemiyorum.
pushd
desteklemiyor -P
. Ama haklısın, soruda gösterildiği gibi, function cd
dizini iki kez değiştirdiği için biraz yanlış görünüyor.
alias cd=pushd
? Mutlak yol olmayan bir şeye (örneğin,cd ../
) geçtiğinizde ne olmasını beklersiniz ?