![heredoc 명령을 백그라운드로 보내는 방법은 무엇입니까?](https://linux55.com/image/207239/heredoc%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EB%B0%B1%EA%B7%B8%EB%9D%BC%EC%9A%B4%EB%93%9C%EB%A1%9C%20%EB%B3%B4%EB%82%B4%EB%8A%94%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)
이런 heredoc 명령을 보내고 싶습니다
cat <<EOF
line 1
line 2
EOF
배경. (실제 명령에는 openssl
입력 줄이 많아 완료하는 데 시간이 걸립니다.)
exec
PHP에서 실행할 수 있도록 명령을 문자열로 저장해야 합니다 .
단순히 & 기호를 추가하면 작동하지 않습니다.
cat <<EOF
line 1
line 2
EOF &
내가 시도한 다른 조합(명령을 대괄호 안에 넣는 등)도 작동하지 않습니다.
어떻게?
답변1
여기서 -doc 연산자( <<EOF
, 여기)는 일반적인 리디렉션 연산자일 뿐이며, 그 뒤에 오는 내용(같은 줄!)은 여전히 명령의 일부입니다.
예를 들어
# from here-doc to file
cat <<EOF > foo.txt
...
EOF
# here-doc and some arguments to cat
cat <<EOF -n foo.txt
...
EOF
# two here-docs!
cat /dev/fd/3 /dev/fd/4 3<<EOF 4<<EOF
first
EOF
second
EOF
따라서 파일에서 리디렉션하는 것과 동일한 작업을 수행하여 명령줄 &
끝에 다음을 입력합니다 cat
.
cat <<EOF &
here-doc text
EOF