यह स्टैकओवरफ़्लो से मेरे पोस्ट की एक प्रति है; मुझे एहसास है कि मुझे इसे यहाँ पूछना चाहिए था ...
मैं एक स्क्रिप्ट चलाना चाहता हूं जो होस्टनाम को बदलता है और मेरे बैश प्रॉम्प्ट (PS1 चर) को उचित होस्टनाम के साथ तुरंत अपडेट करता है। मैं यह कैसे कर सकता हूँ?
मैं इसे चलाता हूं
#!/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
इस तरह एक टर्मिनल में और यह मिलता है
[user@host dir]# ./changehost newhostname
[user@host dir]#
लेकिन जो मैं चाहता हूं वह यह है
[user@host dir]# ./changehost newhostname
[user@newhostname dir]#
टर्मिनल तभी ठीक से अपडेट होता है, जब मैं नया शेल खोलता हूं।
मैंने भी करने की कोशिश की है
export PS1='somestring'; export PS1='[\u@\h \W]\$'
टर्मिनल में स्क्रिप्ट के बाहर और यह 'somestring' और वापस स्विच करता है, लेकिन होस्टनाम अपरिवर्तित है। : \
क्या यह संभव है कि प्रक्रिया शुरू होने पर मेमोरी में \ h संग्रहीत किया जाता है और स्टार्टअप के बाद बदला नहीं जा सकता है?
$PS1
हमारे साथ अपना करंट साझा करने जा रहे थे ?
export PS1='somestring'; export PS1='[\u@\h \W]\$'
टर्मिनल में स्क्रिप्ट के बाहर भी करने की कोशिश की है और यह 'somestring' और वापस स्विच करता है, लेकिन होस्टनाम अपरिवर्तित है। : क्या यह संभव है कि प्रक्रिया शुरू होने पर मेमोरी में \ h संग्रहीत किया जाता है और स्टार्टअप के बाद बदला नहीं जा सकता?