Saya mencoba membuat skrip sederhana yang, antara lain, akan membuat subkulit:
#!/bin/sh
# setup
"${@:-$SHELL}"
# teardown
Pertanyaannya adalah: Saya perlu mengubah prompt default, jadi misalnya:
$ # shell default
$ ./myscript
(myscript) $ # subshell
(myscript) $ exit
$
Saya mencoba untuk mengubah PROMPT
dan PS1
, tetapi tidak ada yang berhasil. Bagaimana saya bisa melakukan itu?
PS: Saya butuh solusi yang bekerja baik pada Bash dan ZSH, jika memungkinkan.
bash
hanya untuk itu .Jawaban:
Saya pikir Anda dapat membuat subkulit dengan prompt berbeda seperti ini:
Contoh
Env saat ini:
Di sub shell:
Kembali ke shell asli:
sumber
here string
substitusi alih - alih proses. mis<<< "PS1..."
.Alasan itu tidak bekerja mungkin karena ketika Anda memuat shell (yang harus misalnya .:
/bin/bash
), itu akan berakhir reload file konfigurasi, yang meliputi variabel lingkungan untuk prompt (misalnya .:$HOME/.bashrc
) setelah yang melewati variabel lingkungan yang Anda inginkan - sehingga variabel Anda dibuang.Anda mungkin ingin memeriksa opsi shell untuk memuat file konfigurasi khusus (mis .:
--rcfile
dalam Bash IINM) dan menggunakannya juga\env
untuk meneruskan variabel lingkungan yang Anda inginkan. Masalahnya adalah bahwa sekali Anda melakukan itu, menembakkan subkulit menjadi tergantung pada shell.( CAVEAT EMPTOR : Saya belum menganggap ini sebagai jawaban - khususnya, saya belum mencoba semua ini di sistem saya.)
sumber