쉘 스크립트에서 옥타브 플롯 표시

쉘 스크립트에서 옥타브 플롯 표시

Octave를 호출하여 무언가를 플롯하는 경우 계속 실행되고 플롯을 표시하려면 대화형 프롬프트가 필요합니다.

명령줄에서 실행할 때 이 --persist옵션은 모든 Octave 명령이 실행된 후에도 Octave를 계속 열어 두므로 플롯을 보고 조작할 수 있습니다.

--persist --eval 이후 또는 FILE에서 읽은 후 대화형으로 전환합니다.

그러나 비대화형 셸 스크립트에서 Octave를 호출하면 대화형 모드로 들어갈 수 없고 --persist명령줄 옵션이나 pause()Octave 스크립트 내부 명령에 반응하지 않습니다.

쉘 스크립트에서 호출되는 경우 Octave가 보이지 않게 대화형 상태를 유지할 수 있는 방법이 있습니까?

답변1

문제를 재현하려고 시도했지만 불가능했습니다. 이 테스트 파일을 만들었습니다.oct.txt

x = -10:.1:10;
y = sin(x).*exp(-abs(x));
plot(x,y)

그리고 go.sh(그리고 로 실행 가능하게 만듭니다 chmod u+x go.sh)

#!/bin/bash
octave -q --persist oct.txt  # It calls the octave and remain as interactive
echo " Now we continue "     # Here the script continue when you exit from octave
sleep 5                      # Do some stuffs
exit                         # It exits

실행하면 ./go.sh시작 octave되고 종료하면 스크립트가 계속됩니다.


맨 아래에 pause()또는 를 추가 하고 명령으로 옥타브를 호출하면 예상대로 작동합니다. pause(10)oct.txtoctave -q oct.txt &

  1. 스크립트가 시작됩니다옥타브백그라운드에서 계속
  2. 결국 스크립트는 옥타브 창을 그대로 유지하면서 종료됩니다.

불행히도 창문은옥타브~이다겨울 왕국명령 에서 pause그다지 유용하지 않습니다.


  • GNU 배시, 버전 4.3.11
  • GNU 옥타브, 버전 3.8.1

관련 정보