"http://mywebsite.com/myscript.txt"URL에 스크립트가 포함 된 파일이 있다고 가정 해 보겠습니다.
#!/bin/bash
echo "Hello, world!"
read -p "What is your name? " name
echo "Hello, ${name}!"
이 스크립트를 먼저 파일로 저장하지 않고이 스크립트를 실행하고 싶습니다. 어떻게해야합니까?
이제 구문을 보았습니다.
bash < <(curl -s http://mywebsite.com/myscript.txt)
그러나 파일에 저장 한 다음 실행하면 작동하지 않는 것 같습니다. 예를 들어 readline이 작동하지 않고 출력은 다음과 같습니다.
$ bash < <(curl -s http://mywebsite.com/myscript.txt)
Hello, world!
마찬가지로, 나는 시도했다 :
curl -s http://mywebsite.com/myscript.txt | bash -s --
같은 결과로.
원래 나는 다음과 같은 해결책을 가지고 있었다.
timestamp=`date +%Y%m%d%H%M%S`
curl -s http://mywebsite.com/myscript.txt -o /tmp/.myscript.${timestamp}.tmp
bash /tmp/.myscript.${timestamp}.tmp
rm -f /tmp/.myscript.${timestamp}.tmp
그러나 이것은 조잡 해 보이며 더 우아한 해결책을 원합니다.
URL에서 셸 스크립트를 실행하는 것과 관련된 보안 문제를 알고 있지만 지금은이 모든 것을 무시하겠습니다.
cmd <<foo
대부분의 쉘에서 heredoc 구문이며 아마도 원하는 것이 아닙니다.
mktemp
여러분 자신의 솔루션을 롤링 하는 대신에 아마 사용하고있을 것입니다