![링크 명령이 포함된 함수를 .bashrc의 별칭에 할당하는 올바른 방법은 무엇입니까?](https://linux55.com/image/138104/%EB%A7%81%ED%81%AC%20%EB%AA%85%EB%A0%B9%EC%9D%B4%20%ED%8F%AC%ED%95%A8%EB%90%9C%20%ED%95%A8%EC%88%98%EB%A5%BC%20.bashrc%EC%9D%98%20%EB%B3%84%EC%B9%AD%EC%97%90%20%ED%95%A0%EB%8B%B9%ED%95%98%EB%8A%94%20%EC%98%AC%EB%B0%94%EB%A5%B8%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)
별칭을 다음과 같이 호출하고 싶습니다.
alias_name arg0 arg1 arg2
- arg0 = 파일 이름
- arg1 = 일반 문자열
- arg2 = 마지막 명령의 문자열 표현
목적은 별칭을 호출하고 arg0, arg1 및 arg2를 전달하여 마지막 명령의 출력을 파일에 추가하는 함수를 호출하는 것입니다. 파일이 이미 존재하는 경우 또는 파일이 존재하지 않는 경우 생성해야 합니다. 그것을 삽입하고 마지막 명령의 출력을 삽입합니다.
참고: 내 의도는 파일 형식이 다음과 같다는 것입니다.
String 1
Command 1
Output of command 1
String i
command i
Output of command i
String N
Command N
Output of command N
내 .bashrc에서 다음과 같이 이를 달성하려고 합니다.
alias alias_name='function_name(){ printf "\n\nString_i: $1" >> $0 ; printf "\nCommand_i: $2" >> $0; printf "\nOutput_of_command_i: $(!!)" >> $0 };_log_error'
이 명령을 .bashrc 파일에 추가하고 소스 ~/.bashrc를 실행한 후 다음 명령을 실행했습니다.
ls -l
그런 다음 내 별칭을 호출했습니다.
alias_name arg0 arg1 arg2
하지만 내가 터미널에서 본 것은 다음과 같았습니다.
>
파일이 생성되지 않습니다.
이것이 이러한 유형의 결과를 얻는 올바른 방법인지, 아니면 시스템의 다른 곳에 있는 스크립트를 호출하기 위한 별칭이 있어야 하는지 궁금합니다.
노트: 제가 직면한 한 가지 제한 사항은 이식성입니다. 저는 종종 다른 시스템으로 SSH를 통해 연결하고 그곳에서 이 명령을 실행해야 합니다. 이것이 별칭이 이 작업을 수행하는 올바른 방법이라고 생각한 이유입니다. 문제의 컴퓨터에 간단히 ssh를 사용하여 ~./bashrc의 이름을 ~/.bashrc_disabled로 변경한 다음 내 bashrc(이 새 별칭을 포함)를 scp할 수 있기 때문입니다. ) 그 자리에서 내 명령을 실행한 다음 결과 파일을 내 컴퓨터로 다시 scp하고 .bashrc를 삭제하고 원본 .bashrc의 이름을 .bashrc_disabled에서 .bashrc로 바꿨습니다.