다음은 /root/.bashrc 내역.
1 # .bashrc 2 3 # User specific aliases and functions 4 5 alias rm='rm -i' 6 alias cp='cp -i' 7 alias mv='mv -i' 8 alias vi=vim 9 11 if [ -f /etc/bashrc ]; then 12 . /etc/bashrc 13 fi
명령어 단축키를 추가해보자.
1 # .bashrc 2 3 # User specific aliases and functions 4 5 alias rm='rm -i' 6 alias cp='cp -i' 7 alias mv='mv -i' 8 alias vi=vim 9 alias la='ls -a' 10 11 # Source global definitions 12 if [ -f /etc/bashrc ]; then 13 . /etc/bashrc 14 fi
source 명령을 이용해서 변경된 bash 환경 재적용. la 명령으로 ls -a의 실행 결과를 볼 수 있다.
[root@Centos7 ~]# source /root/.bashrc[root@Centos7 ~]# la. anaconda-ks.cfg .bash_logout .bashrc .pki .viminfo .vimrc
.. .bash_history .bash_profile .cshrc .tcshrc .viminfo.tmp
이 작업을 스크립트로 처리하고 싶다
일단 쉘 테스트는 잘 됨.
[root@Centos7 ~]# sed -i "s/vim/vim\nalias la='ls -a'/" /root/.bashrc[root@Centos7 ~]# cat /root/.bashrc
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias vi=vim
alias la='ls -a'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi[root@Centos7 ~]# source /root/.bashrc[root@Centos7 ~]# la. anaconda-ks.cfg .bash_logout .bashrc .pki .tcshrc .viminfo.tmp.. .bash_history .bash_profile .cshrc script.sh .viminfo .vimrc
스크립트 생성 후 실행.
[root@Centos7 ~]# cat script.sh#!/bin/bash
sed -i "s/vim/vim\nalias la='ls -a'/" /root/.bashrcsource /root/.bashrc[root@Centos7 ~]# ./script.sh[root@Centos7 ~]# la-bash: la: command not found[root@Centos7 ~]# cat /root/.bashrc# .bashrc
# User specific aliases and functions
alias rm='rm -i'alias cp='cp -i'alias mv='mv -i'alias vi=vimalias la='ls -a'
# Source global definitionsif [ -f /etc/bashrc ]; then . /etc/bashrcfi
안 된다(..) .bashrc는 변경됐으니 source 명령어가 적용되지 않았다는 얘기. source 명령어는 현재 사용자쉘, 스크립트는 별도 쉘에서 실행되기 때문인 듯. source 명령어로 스크립트를 실행시켜봤다.
[root@Centos7 ~]# source ./script.sh[root@Centos7 ~]# la. anaconda-ks.cfg .bash_logout .bashrc .pki .tcshrc .viminfo.tmp.. .bash_history .bash_profile .cshrc script.sh .viminfo .vimrc
댓글 없음:
댓글 쓰기