다른 파일에서 별명을로드하는 .bashrc


11

.bashrc 파일이 있는데 .aliases 파일에서 별칭을 읽고 설정하도록 설정하고 싶습니다.

현재 나는 :

# User specific aliases and functions
while read alias_line
do
        echo `alias ${alias_line}`
done < .aliases

그러나 로그인하면 다음을 얻습니다.

-bash : 별명 : -fu : 찾을 수 없음 -bash : 별명 : $ USER ": 찾을 수 없음

-bash : 별명 : -lart ": 찾을 수 없음

.aliases 파일은 다음과 같습니다.

psu = "ps -fu $ USER"ll = "ls -lart"
pico = 'nano'

답변:


13

을 사용 하면 인용 규칙을 무시하고alias ${alias_line} 변수가 공백으로 구분됩니다 .

수정할 수있는 두 가지 방법이 있습니다.

  • 별명 파일에서 모든 따옴표를 제거하십시오.

    ll=ls -lart
    psu=ps -fu $USER
    

    변수 자체를 따옴표로 묶습니다.

    alias "$alias_line"

    이 때문에 bash는 작품 ll="ls -lart"과는 "ll=ls -lart"완전히 동일합니다.

  • 또는 (이 방법은 더 좋고 더 일반적인 방법입니다), alias명령 이 포함 된 파일을 갖고 .내장 (일명 source)을 사용하여 가져옵니다.

    alias pico='nano'
    alias psu='ps x'
    alias ll='ls -lart'
    

    그럼 당신의 ~/.bashrc:

    . ~/.aliases

두 번째 방법은 별칭으로 제한하지 않고 훨씬 강력한 기능을 정의 할 수 있기 때문에 더 좋습니다 .


맞습니다. 완전히 잘못된 접근법이었습니다. 나는이 명령을 사용하여 스스로 해냈다. echo "alias $ line">> .aliases_full; done <.aliases 그런 다음 mv .aliases_full .aliases 수행했습니다. ./.aliases #in .bashrc 감사합니다 :)
Vladimir
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.