Seperti yang dijelaskan pada jawaban lain, Anda telah mengubah direktori, tetapi hanya di dalam sub-shell yang menjalankan skrip . ini tidak memengaruhi shell induk.
Salah satu solusinya adalah menggunakan fungsi bash alih-alih skrip bash ( sh
); dengan menempatkan kode skrip bash Anda ke suatu fungsi. Itu membuat fungsi tersedia sebagai perintah dan kemudian, ini akan dieksekusi tanpa proses anak dan dengan demikian cd
perintah apa pun akan berdampak pada shell penelepon.
Fungsi bash:
Salah satu fitur dari profil bash adalah untuk menyimpan fungsi kustom yang dapat dijalankan di terminal atau dalam skrip bash dengan cara yang sama Anda menjalankan aplikasi / perintah ini juga dapat digunakan sebagai jalan pintas untuk perintah yang panjang.
Untuk membuat sistem Anda berfungsi efisien secara luas, Anda perlu menyalin fungsi Anda di akhir beberapa file
/home/user/.bashrc
/home/user/.bash_profile
/root/.bashrc
/root/.bash_profile
Anda dapat sudo kwrite /home/user/.bashrc /home/user/.bash_profile /root/.bashrc /root/.bash_profile
mengedit / membuat file-file itu dengan cepat
Howto:
Salin kode skrip bash Anda di dalam fungsi baru di akhir file profil bash Anda dan mulai ulang terminal Anda, Anda kemudian dapat menjalankan cdd
atau apa pun fungsi yang Anda tulis.
Contoh Skrip
Membuat pintasan cd ..
dengancdd
cdd() {
cd ..
}
ls jalan pintas
ll() {
ls -l -h
}
ls jalan pintas
lll() {
ls -l -h -a
}