Apakah Anda lebih suka skrip bash atau alias untuk pintasan? [Tutup]

8

Saya memiliki ~/bindirektori (yang ada di saya PATH) di mana saya menyimpan banyak skrip 1 atau 2 baris kecil. Beberapa dari mereka hanya cdmasuk ke direktori dan menjalankan perintah pada file, suka vimatau sesuatu. Tapi saya juga punya banyak alias di .bash_aliasesfile saya yang melayani tujuan yang sama.

Bagaimana Anda memutuskan antara menulis skrip bash kecil dan menulis alias? Apakah penting di mana pun Anda pergi?

dan
sumber

Jawaban:

5

Jika saya cukup sering menggunakannya untuk memastikan biaya overhead agar mereka dimuat di setiap shell. Saya akan menuliskannya sebagai fungsi.

Jika mereka spesifik proyek, saya dapat menuliskannya sebagai satu set alias dan fungsi yang dapat bersumber ke shell ketika saya sedang mengerjakan proyek itu.

Hanya jika mereka bekerja dengan cara yang berdiri sendiri melakukan apa saja menjadi skrip di ~ / bin saya. Ada beberapa liner yang pada dasarnya alias, tetapi ini untuk menjalankan dari tempat selain shell (jalankan prompt di program lain misalnya). Sebagian besar mereka harus skrip yang cukup besar.

Caleb
sumber
1

Secara umum fungsi skrip shell lebih fleksibel daripada alias dan Anda harus lebih menyukainya. Misalnya dalam alias Anda tidak dapat menguji apakah jumlah argumen yang diberikan atau jenisnya yang diharapkan. Saya setuju dengan Caleb bahwa alias cocok dengan kalimat sederhana, misalnyaalias cp='cp -i'

sakisk
sumber
1

Untuk sesuatu yang lebih rumit sebagai pengganti string dari satu perintah, skrip mungkin lebih tepat. Juga, apa pun yang akan digunakan oleh skrip lain atau mungkin digunakan oleh orang lain mungkin lebih baik sebagai skrip. Walaupun menjalankan program dari direktori bin orang lain bukanlah ide bagus, itu lebih baik daripada mencari file alias individu seseorang.

Alias ​​adalah yang terbaik untuk mempersonalisasikan lingkungan interaktif Anda. Misalnya,, e='emacs -nw'dan hal semacam itu.

Goladus
sumber
0

Saya menggunakan pendekatan sesederhana mungkin.

Terutama, jika perintah tidak memiliki parameter, saya biasanya menggunakan alias.

Jika perintah memiliki parameter saya menggunakan fungsi.

mis. membuat dan melakukan cd ke direktori:

md () { [ $# = 1 ] && mkdir -p "$@" && cd "$@" || echo "Error - no directory passed!"; }

Saya juga menggunakan fungsi jika perintah menggunakan fungsi terinstal yang memiliki params

misalnya, menambahkan -v ke git:

git () { [ $1 = commit ] && command git commit -v "${@:2}" || command git "$@"; }
Michael Durrant
sumber