Ben örneğin bir kabuk dosyası var wd.shve ben denilen bir komuta içine bu açmak istiyorum wdsadece koşmak gibi, bunu sh zorunda kalmadan çalışabileceği cat, sortveya başka bir UNIX komut.
Bunu nasıl yaparım?
Sevmek
wd file1 file2
Ben örneğin bir kabuk dosyası var wd.shve ben denilen bir komuta içine bu açmak istiyorum wdsadece koşmak gibi, bunu sh zorunda kalmadan çalışabileceği cat, sortveya başka bir UNIX komut.
Bunu nasıl yaparım?
Sevmek
wd file1 file2
Yanıtlar:
Bu yolu öneririm (bir kullanıcı yerel ~/bindir kullanarak ):
cd
mkdir -p bin
cat<<EOF>bin/wd
#!/bin/bash
echo "it works"
EOF
chmod +x bin/wd
export PATH=~/bin:$PATH
wd
(Tüm kodu aynı anda bir (sözde) terminalde kopyalamanız / yapıştırmanız yeterlidir)
PATH'yi başka bir kabuk açtıktan sonra değiştirmeye devam etmek için, açmak ~/.bashrcve eklemek üzere bir düzenleyici kullanın .
export PATH=~/bin:$PATH
hat.
~/binde klasörü sonuna başlangıcı değil de yolunuzun: export PATH="$PATH:~/bin". Bu şekilde eğer bir kötü amaçlı yazılım parçası gizlice girerse, aynı isimli bir sistem komutundan önce çalıştırılmaz.
Daha basit bir çözüm: takma isim yapın!
echo "alias wd='bash /somedir/somesubdir/myscript.sh'" >> ~/.bash_aliases
source ~/.bashrc
Ve bitti. Komut dosyasını çalıştırılabilir hale getirmenize bile gerek yok
source ~/.bash_aliasesiçinde~/.bashrc
bashadam sayfası: "Hemen hemen her amaçla, diğer adlar kabuk fonksiyonları tarafından geçersiz kılınır."
Geçerli klasörün yolunu ~ / .bashrc dosyasına eklemeniz yeterlidir
export PATH=$PATH:CURRENT_DIRECTORY_PATH