![런타임에 변경될 수 있는 변수로 별칭을 정의하는 방법은 무엇입니까?](https://linux55.com/image/59572/%EB%9F%B0%ED%83%80%EC%9E%84%EC%97%90%20%EB%B3%80%EA%B2%BD%EB%90%A0%20%EC%88%98%20%EC%9E%88%EB%8A%94%20%EB%B3%80%EC%88%98%EB%A1%9C%20%EB%B3%84%EC%B9%AD%EC%9D%84%20%EC%A0%95%EC%9D%98%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
아마도 대답하기 쉬운 질문일 것입니다. 그러나 제목을 작성할 때 표현이 다르기 때문에 이미 이 질문을 하는 질문을 찾을 수 없습니다.
help alias
내 bash 프롬프트에서 실행하면 다음이 반환됩니다.
alias: alias [-p] [name[=value] ... ]
그런 다음 제가 질문하는 내용과 전혀 관련이 없는 매우 짧은 텍스트가 왔습니다.
나는 또한 다음을 시도했습니다.
help function
그러나 그것은 나에게 많은 정보를 제공하지 않습니다.
예를 들어:
alias mancat="man command | cat"
mancat grep
이렇게 하면 man grep | cat
.
이것이 변수라고 하는 것은 알지만 정의되지 않았으며 예제 명령을 실행할 때처럼 언제든지 변경할 수 있기를 원합니다.
답변1
별칭이 아닌 함수를 사용해야 합니다.
mancat () { man "$1" | cat ; }
mancat grep
당신이 원하는 것을 할 것입니다.
비슷하게
mygrep () { "$1" "$3" "$2" | "$1" -v "$4" | "$5" -n1; }
mygrep grep pattern1 file pattern2 head
mygrep grep pattern1 file pattern2 tail
grep
for 를 pattern1
입력 한 file
다음 일치하지 않는 행 pattern2
( grep -v
)만 선택하고 마지막으로 첫 번째(또는 마지막) 행만 선택합니다.