Ketika saya mengubah direktori kerja dalam skrip dan menjalankannya, direktori kerja hanya mengubah jalur yang ditentukan saat dalam skrip. Ini skrip saya: (ini untuk memastikan apakah itu benar-benar mengubah direktori)
#!/bin/bash
cd /media/hard/drive/partitionX/
pwd
Ketika saya menjalankannya, ia mengembalikan jalur yang ditentukan, tetapi direktori kerja saya di terminal tidak berubah. Bagaimana cara mengubah direktori kerja di terminal saya melalui skrip?
source
skrip. Lihat pertanyaan serupa ini .Jawaban:
Ini normal. Direktori "saat ini" atau "berfungsi" adalah parameter per-proses, dan suatu proses hanya dapat mengubah direktori kerjanya sendiri . Skrip mandiri dieksekusi sebagai proses shell terpisah dan tidak dapat memengaruhi shell induk (pada kenyataannya, induk mungkin tidak selalu berupa shell).
Anda perlu menggunakan fitur-fitur internal shell Anda, seperti:
fungsi shell:
alias shell:
"sumber" skrip alih-alih menjalankannya:
Jika tujuan utama Anda adalah membuat pintasan ke direktori tertentu, Anda juga dapat menggunakan:
symlink di lokasi yang lebih nyaman:
variabel ($ mydir):
fitur $ CDPATH:
sumber