링크 명령이 포함된 함수를 .bashrc의 별칭에 할당하는 올바른 방법은 무엇입니까?

링크 명령이 포함된 함수를 .bashrc의 별칭에 할당하는 올바른 방법은 무엇입니까?

별칭을 다음과 같이 호출하고 싶습니다.

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로 바꿨습니다.

관련 정보