alias 에서 argument 받을수 있도록 해주려면 어케 해야하는지요

realxixi의 이미지

헌재 tcsh을 쓰고 있습니다...첨에 어찌 하다보니...^^;;

bash로 옮겨 갈라고 설정중인데 몇가지 안되는게 있습니다..

tcsh에서는 다음과 같이 alias를 줘서 쓰고 있었습니다.

alias cd 'cd \!*;set prompt="$user@`hostname`:`pwd`]";ls -aF'

여기서 \!* 가 명령어 실행시 argument를 받아올 수 있도록 하는역할을 하는거라고 알고 있는데 맞나요?

같은 동작을 bash에서 쓰려고 하는데 되질 않네요...지금 메뉴얼 한참 보는중인데..찾기가 쉽지 않습니다 ㅜ,.ㅡ

bash에서 같은 동작을 하도록 어떻게 alias를 잡아주면 될까요? :oops:

.

happibum의 이미지

function cd { builtin cd $*; ls -aF; }

를 ~/.bashrc에다 넣어두세요.
같은 이름의 function과 builtin이 있으면 function이 우선 순위를 가지기 때문에
함수내에서 쓰는 cd 는 builtin임을 명시해 주어야 무한 루프에 빠지지 않습니다.

프롬프트의 경우엔 PS1 환경변수를 설정하는것이 더 bash다운것 같습니다..

export PS1="\u@\h:\w $ "
익명 사용자의 이미지

흠..알려주신 대로 해봤는데 잘 안되네요....ㅜ.,ㅡ

전체 .bashrc 를 올려봅니다

#
# ~/.bashrc
#
                                                                                
export PS1="\u@\H:\w $ "
                                                                                
alias ls='ls --color'
alias cd='cd $* | PS1=\u@\H:\w];ls -aF'
#function cd { builtin cd $*; ls -aF; }

간단히 요약하면 cd 를 실행하면 해당 디렉토리로 이동하면서 ls -aF를 한번 실행하려는 alias를 cd에 걸어주려는 것입니다. :oops:

realxixi의 이미지

아..위의글 손님으로 올라갔군요 ^^;;

레드햇8.0 커널2.4.18

초보 초보 ^^;;

최병현의 이미지

realxixi wrote:
흠..알려주신 대로 해봤는데 잘 안되네요....ㅜ.,ㅡ

전체 .bashrc 를 올려봅니다

#
# ~/.bashrc
#
                                                                                
export PS1="\u@\H:\w $ "
                                                                                
alias ls='ls --color'
alias cd='cd $* | PS1=\u@\H:\w];ls -aF'
#function cd { builtin cd $*; ls -aF; }

간단히 요약하면 cd 를 실행하면 해당 디렉토리로 이동하면서 ls -aF를 한번 실행하려는 alias를 cd에 걸어주려는 것입니다. :oops:

quotaion의 방향이 틀렸습니다.
alias cd=`cd $*;ls -aF`

따옴표가 아니고 물결표시와 같이 있는 것을 사용해야 합니다. :wink:
저도 처음에는 자주 혼동했습니다.

To be a rich

realxixi의 이미지

흠..결국 이렇게 하니 되는군요 ..감사합니다 ^^

#
# ~/.bashrc
#
                                                                                
export PS1='\u@\H:\w \$ '
                                                                                
alias ls='ls --color'
                                                                                
function cd { builtin cd $*; ls -aF; }

레드햇8.0 커널2.4.18

초보 초보 ^^;;