저는 스크립팅 언어를 처음 접했습니다.
source ~/.custom_rc
쉘 스크립트에서 명령을 실행 해야 합니다 . 쉘 스크립트를 실행하면 오류가 표시되지 않습니다. 그것은 아주 잘 작동합니다.
이것은 내 install.sh
파일입니다.
#!/usr/bin/env bash
#
# Some Comments
#
# End of Comments
echo ""
.
.
.
.
.
.
source ~/.custom_rc
echo "End Of Script..."
컬을 사용하여 스크립트를 실행하고 있습니다 sh -c
.
sh -c "$(curl -fsSL https://some.link/to/install.sh)"
스크립트 내에서 명령이 실행되지 않는 이유는 무엇입니까? 쉘 스크립트 내에서 어떻게 실행되도록 합니까?
편집 #1:
파일에서 alias 명령을 사용합니다 .custom_rc
.
실행 후에는 alias 명령을 사용할 수 없습니다.
그러나 수동으로 실행하면 source ~/.custom_rc
alias 명령이 제대로 작동합니다.
답변1
알았어...무슨 일인지 이해합니다. 다음에 정의된 별칭을 사용하려면.custom_rc
뒤쪽에 sh
sh
실행되면 별칭이 세션 내에 설정 되므로 작동하지 않습니다 . sh
완료되면 그들은 죽을 것입니다. 즉, 실행 시 별칭을 사용할 수 있어야 source
합니다 install.sh
.
이 문제를 처리하는 다른 스크립트에 대한 도움이 필요합니다.
래퍼.sh:
curl https://some.link/to/install.sh # download the script so you can source it
. install.sh # source it
(혹은 비슷한 것)
그러면 실행할 수 . wrapper.sh
있고 작동할 것입니다(어떻게 얻었는지 참고하세요).
고쳐 쓰다
작동하지 않는다는 의견:
$ cat script1.sh
alias alias1="echo hola"
. script2.sh
$ cat script2.sh
alias alias2="echo adios"
$ ./script1.sh
$ alias1
bash: alias1: command not found
$ alias2
bash: alias2: command not found
$ . script1.sh
$ alias1
hola
$ alias2
adios