Ini adalah salinan posting saya dari stackoverflow; Saya sadar saya seharusnya bertanya di sini ...
Saya ingin menjalankan skrip yang mengubah nama host dan segera meminta bash prompt (variabel PS1) dengan nama host yang tepat. Bagaimana saya mewujudkan ini?
Saya menjalankan ini
#!/bin/bash
# Usage: ./changehost <newhostname>
#Do two sed's to edit the files for persistent hostname change
sed -i s/$(hostname)/$1/g "/etc/hosts"
sed -i s/$(hostname)/$1/g "/etc/sysconfig/network"
#run the hostname command with new hostname to update it
hostname $1
Di terminal seperti ini dan dapatkan ini
[user@host dir]# ./changehost newhostname
[user@host dir]#
Tapi yang saya inginkan adalah ini
[user@host dir]# ./changehost newhostname
[user@newhostname dir]#
Terminal diperbarui dengan benar hanya ketika saya membuka shell baru.
Saya juga coba lakukan
export PS1='somestring'; export PS1='[\u@\h \W]\$'
di luar skrip di terminal dan ia beralih ke 'somestring' dan kembali, tetapi nama host tidak berubah. : \
Apakah mungkin \ h disimpan dalam memori ketika proses dimulai dan tidak dapat diubah setelah startup?
$PS1dengan kami?
export PS1='somestring'; export PS1='[\u@\h \W]\$'luar skrip di terminal dan itu beralih ke 'somestring' dan kembali, tetapi nama host tidak berubah. : \ Apakah mungkin \ h disimpan dalam memori ketika proses dimulai dan tidak dapat diubah setelah startup?