두 번째 별칭이 포함된 .sh 파일을 실행하기 위해 .bashrc 별칭을 만든 다음 두 번째 별칭을 실행하려면 어떻게 해야 합니까?

두 번째 별칭이 포함된 .sh 파일을 실행하기 위해 .bashrc 별칭을 만든 다음 두 번째 별칭을 실행하려면 어떻게 해야 합니까?

제목에 설명된 대로 할 수 있나요?

"initstuff.sh" 스크립트가 있고 해당 스크립트 내에 무언가를 실행하는 별칭 "shalias"가 있다고 가정해 보겠습니다. 내 .bashrc에 "shalias"를 넣는 것은 불가능합니다. 왜냐하면 컨텍스트에 "shalias"가 포함된 initstuff2.sh, "shalias"가 포함된 initstuff3.sh...등이 있기 때문입니다. 각각은 동일한 빈도로 실행되어야 합니다.

이제 터미널에 로그인했고 "firstArgVal" 및 "secondArgVal" 매개변수를 사용하여 initstuff2에서 "shalias"를 실행하고 싶다고 가정해 보겠습니다.

내 .bashrc에는 다음이 있습니다.

alias runinit1=". /initstuff1.sh"
alias runinit2=". /initstuff2.sh"

따라서 이러한 매개변수를 사용하여 initstuff2에서 "shalias"를 실행하려면 다음 두 줄이 필요합니다.

$ runinit2
$ shalias -firstArgVal -secondArgVal

한 줄로 실행되게 하려면 어떻게 해야 합니까? 특히 .bashrc에 다음을 추가하고 싶습니다.

alias runinit2normal:". /initstuff2.sh ; shalias -firstArgVal -secondArgVal

이것은 작동하지 않습니다. 나는 다음을 얻습니다.

bash: shalias: command not found

runinit2normal을 두 번 호출하면 initstuff2.sh가 첫 번째 호출에서 실행될 기회가 있기 때문에 작동하므로 shalias가 이미 있고 두 번째 호출에서 사용할 수 있지만 이런 종류의 목적은 단일 별칭을 사용하는 것과 반대됩니다. 이 일을 하는 것. 대신 &&를 사용하면 작동하지 않습니다. 나는 또한 그것을 함수로 실행하려고 시도했지만 여전히 운이 좋지 않았고 이상한 동작을 방지하기 위해 runinit2normal을 두 번 호출하는 또 다른 별칭을 만들어 보았습니다. 두 번 호출하면 명령 줄에 있기 때문입니다. 호출하십시오 (따라서 한 번 실패합니다) ). bashrc에서 실제로 예상대로 작동하는 "runinit2normal" 별칭을 만들 수 있는 방법이 있나요?

답변1

귀하의 질문은 문구 때문에 이해하기 가장 쉽지는 않지만, 이 bash 옵션을 설정하면 이미 가지고 있는 것이 작동할 것이라고 생각합니다.

shopt -s expand_aliases

관련 정보