이것은 stackoverflow에서 내 게시물의 사본입니다. 여기에 물어 봤어야한다고 생각합니다.
호스트 이름을 변경하고 적절한 호스트 이름으로 bash 프롬프트 (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가 메모리에 저장 될 수 있으며 시작 후에 변경할 수 없습니까?