Bir komut dosyası nasıl çalıştırılır komut gibi yazdım?


0

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

bash 

Yanıtlar:


3

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.



2
Tahvilin aşkına, bunun kişisel olması en iyisi ~/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.
MattDMo

2

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


Herkesin sahip source ~/.bash_aliasesiçinde~/.bashrc
Gilles Quenot

Kabuk fonksiyonları takma adlara göre tercih edilir.
chepner

@chepner: sizin tarafınızdan tercih edilir? kendi kendine ? Bir fonksiyon kullanmak bu durumda işe yaramaz.
michaelmeyer

Gönderen bashadam sayfası: "Hemen hemen her amaçla, diğer adlar kabuk fonksiyonları tarafından geçersiz kılınır."
chepner

0

Geçerli klasörün yolunu ~ / .bashrc dosyasına eklemeniz yeterlidir

export PATH=$PATH:CURRENT_DIRECTORY_PATH
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.