Jadi saya telah mencoba bereksperimen dan membuat alias
in .bashrc
. Namun, ketika saya menguji perintah saya mendapatkan:
[rkahil@netmon3 ~]$ menu
-bash: menu: command not found
Inilah yang saya miliki di .bashrc
file:
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific aliases and functions
alias menu='./menuScript.sh'
alias vi='vim'
Yang lucu adalah ketika saya membuat alias vi
, itu berhasil. Tapi menu tidak. Saya telah mencari posting sebelumnya di UnixStackExchange dan berusaha untuk mengikuti posting lain, tetapi tidak berhasil. Apakah ada orang lain yang punya saran?
./menuScript.sh: command not found
No such file or directory
, yang masih tidak sama dengan kesalahan OP. Intinya masih berdiri - itu akan lebih baik dengan path absolut kecuali alias selalu hanya akan digunakan dari direktori tempatmenuScript.sh
tinggal.Jawaban:
Anda harus mencobanya
alias menu='bash ./menuScript.sh'
. Saat ini saya tidak menggunakan mesin Linux, jadi saya tidak bisa mengujinya sendiri, tetapi harus berfungsi. Ketika Anda memanggil alias, itu tidak tahu apa yang harus dilakukan dengan path, jadi Anda harus menyertakanbash
di awal.Dan mengatur ulang terminal tidak membantu setelah melakukan perubahan.
sumber
menuScript.sh
belumchmod
bisa dieksekusi, dalam hal ini pesan kesalahannya adalah “Izin ditolak”. Saya menduga bahwa memaksa membaca ulang.bashrc
file adalah jawabannya. ... ... ... ... ... ... ... PS Shell tahu apa yang harus dilakukan dengan path dengan cara yang sama jika pengguna mengetik./menuScript.sh
- dengan mencoba mengeksekusi file.Saat kamu melakukan
Anda membuat alias alias yang mengatakan "file itu" tetapi tidak mengatakan apa yang sebenarnya harus dilakukan dengannya.
Namun, jika Anda melakukannya
atau
Anda mengatakan jalankan file itu.
sumber
Apakah Anda ingat untuk mencari file ~ / .bashrc Anda setelah melakukan perubahan? Karena perubahan berlaku di file .bashrc Anda setelah me-restart komputer Anda atau hanya sumber file.
sumber
.bashrc
, lakukan yang berikut ...". Di sisi lain, pertanyaan klarifikasi (misalnya, "Apakah Anda lupa ...?") Tampaknya lebih cocok untuk komentar. Tidak perlu banyak pengulangan kata untuk membuat posting ini tampak jauh lebih cocok untuk jawaban.source ~/.bashrc
atau. ~/.bashrc
, maka Anda bisa membuka shell lain juga. Sesederhana itu. Tidak perlu me-reboot.Alasan mengapa ia bekerja
vim
adalah karena itu adalah program yang sudah dapat dipanggil tanpa jalur langsung. Anda tidak perlu secara eksplisit mengatakan "Saya ingin ini dijalankan sebagai program" karenavim
sudah ada. Hard-coded ke dalam OS ketika menerima perintahvim
, pergi dan jalankan file/usr/bin/vi
atau di mana pun program yang sebenarnya.sumber
vim
tersedia di$PATH
yang dapat menjadi biner yang dapat dieksekusi, skrip yang dapat dieksekusi, atau bahkan symlink ke program lain .. Jika Anda menghapus entri untukvim
itu tidak lagi tersedia untuk pengguna.ifvi
yang tinggal di saya$HOME/bin
(yang kebetulan berada di saya$PATH
). Saya hanya menggunakannya dengan cara yang sama persis seperti menjalankan biner yang diinstal sistem. Benar-benar tidak masalah bahwa itu adalah program khusus.Ada dua masalah dengan alias
Ini mengharuskan Anda berada di direktori tertentu ketika Anda memanggil alias. Jika Anda berada di direktori di mana
menuScript.sh
tidak ada, alias akan gagal dieksekusi.Akan lebih baik jika Anda menentukan path absolut penuh ke
menuScript.sh
skrip ketika mendefinisikan alias, misalnyaatau serupa.
Seperti yang telah dikatakan orang lain, alasan lain mengapa alias gagal adalah karena skrip tidak dapat dieksekusi, atau memiliki garis-tidak valid
#!
. Pastikan skrip dapat dieksekusi dengandan bahwa baris pertama dalam skrip adalah
atau apa pun jalan menuju
bash
(atau apa pun naskah ditulis untuk) pada sistem Anda.sumber