Programming

bash에서 변수가있는 별칭

procodes 2020. 8. 11. 21:05
반응형

bash에서 변수가있는 별칭


이 질문에 이미 답변이 있습니다.

다음

bash

과 같이 별칭을 만들고 싶습니다.

alias tail_ls="ls -l $1 | tail"

따라서 누군가가 다음을 입력하면 :

tail_ls /etc/ 

디렉토리의 마지막 10 개 파일 만 표시됩니다.그러나

$1

나를 위해 작동하지 않는 것 같습니다. bash에서 변수를 도입 할 수있는 방법이 있습니까?


별칭이 아닌 함수를 만든 다음 다음과 같이 내 보냅니다.

function tail_ls { ls -l "$1" | tail; }

export -f tail_ls

Note

-f

switch to

export

: 함수를 내보내고 있음을 알려줍니다. 이것을 당신에 넣으면

.bashrc

당신은 갈 수 있습니다.


@ maxim-sloyko의 솔루션은 작동하지 않았지만 다음과 같은 경우 :

  1. ~ / .bashrc에 다음을 추가하십시오.
    sendpic () { scp "$@" mina@foo.bar.ca:/www/misc/Pictures/; }
    
  2. 파일을 저장하고 다시로드
    $ source ~/.bashrc
    
  3. 그리고 실행 :
    $ sendpic filename.jpg
    

원본 출처 :

http://www.linuxhowtos.org/Tips%20and%20Tricks/command_aliases.htm


alias tail_ls='_tail_ls() { ls -l "$1" | tail ;}; _tail_ls'

당신은 정의 할 수 있습니다

$1

set

다음 의도 한대로 당신의 별칭을 사용합니다 :

$ alias tail_ls='ls -l "$1" | tail'
$ set mydir
$ tail_ls

tail_ls() { ls -l "$1" | tail; }


bash 대신 Fish shell (

http://fishshell.com

)을 사용하는 경우 함수를 약간 다르게 작성합니다.다음과 같은 것을 추가하고 싶을 것

~/.config/fish/config.fish

입니다.

~/.bashrc

function tail_ls
  ls -l $1 | tail
end

참고 URL :

https://stackoverflow.com/questions/4438147/alias-with-variable-in-bash

반응형