heredoc 명령을 백그라운드로 보내는 방법은 무엇입니까?

heredoc 명령을 백그라운드로 보내는 방법은 무엇입니까?

이런 heredoc 명령을 보내고 싶습니다

cat <<EOF
line 1
line 2
EOF

배경. (실제 명령에는 openssl입력 줄이 많아 완료하는 데 시간이 걸립니다.)

execPHP에서 실행할 수 있도록 명령을 문자열로 저장해야 합니다 .

단순히 & 기호를 추가하면 작동하지 않습니다.

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

관련 정보