문제

내$포탄은 tcsh.나를 실행하려 c 쉘 스크립트를 호출하는 프로그램에 많은 시간과 함께 인수가 변경되었습니다.프로그램을 호출해야에서 Fortran.내가 원하지 않는게 편집할 수 있습니다.프로그램만 인수 한 그것은 실행되지만,on the command line.에 따라 프로그램을 호출하는 스크립트에서 제어 프로그램(이 나 있는 곳에 붙어 현재 저는 얻을 수 없기 때문에 스크립트를 실행하지 않을 때까지 아무것도 후 프로그램 프로세스가 중지되);이 시점에서 필요해요 그것을 전달하는 몇 가지 변수가,그 후 여러 가지 반복세요 ctrl+c 프로그램을 계속으로 스크립트입니다.

어떻게 할 수 있습니까?

도움이 되었습니까?

해결책

를 추가하이 무엇@Toybuilder 말했다,사용할 수 있습니다"여기에 문서".I.e.스크립트 수

./myfortranprogram << EOF
first line of input
second line of input
EOF

사이에 있는 모든"<<EOF"및"EOF"먹일 것이다 프로그램이 표준입력(가 프로그램은 여전히"사용 읽기(5,*)"표준입력에서 읽?)

고 생각하기 때문에@ephemient 의 의견 할 가치에 대한 답변:

좀 더 도움말:<<'EOF'방지 보간에 여기에 문서 본체;<<-EOF 모두 제거한 최고의 탭(도 할 수 있습 들여쓰기 닥치 실),및 수 있습 EOF 에 의해 대체합니다.빈 토큰 (<<"")을 나타냅니다 여기-doc 는 중 처음에 빈 라인입니다.

나는 확실하지 않는 방법 휴대용 그 사람은 경우,또는 그들은 단지 tcsh 확장자-난 단지 사용 <<EOF 유형"여기에 문서"자신입니다.

다른 팁

당신이 사용하고 싶은 것은입니다 예상하다.

음, 리디렉션으로 Fortran 코드를 공급할 수 있습니까? 입력으로 임시 파일을 작성한 다음 Stdin 리디렉션 (<)으로 파이프로 파이프 할 수 있습니다.

아니에요 tcsh 사용자이지만 프로그램이 실행되면 stdin 그런 다음 쉘 리디렉션을 사용할 수 있습니다 < 필요한 명령을 공급하기 위해. 배경으로 실행하면 & 실행되면 차단하지 않습니다. 그럼 당신은 할 수 있습니다 sleep 조금도, 당신이 가진 도구를 사용하십시오 (ps, grep, awk, 등) 프로그램의 PID를 발견 한 다음 사용하십시오. kill 보내기 위해 SIGTERM Ctrl-C를 수행하는 것과 동일합니다.

이것은 UNIX 프로그램 기대의 직업이며, 이는 대화식 프로그램을 훌륭하고 쉽게 지휘하고 프롬프트에 대응할 수 있습니다.

나는 내 질문 이이 질문의 복제에 가깝다고 들었을 때 여기로 보내졌다.

fwiw, 나는 CSH C 쉘 스크립트와 비슷한 문제가있었습니다.

이 코드는 Custom_Command가 입력 인수를 얻지 않고 실행할 수있게했습니다.

foreach f ($forecastTimes)
    custom_command << EOF
        arg1=x$f;2
        arg2=ya
        arg3=z,z$f
        run
        exit
        EOF
end

처음 시도했을 때는 작동하지 않았지만 코드의 해당 섹션에서 모든 공백을 백 스페이스 한 후 "<<"과 "eof"사이의 공간을 제거했습니다. 또한 왼쪽 마진까지 "EOF"를 끝까지 닫았습니다. 그 후 그것은 효과가있었습니다.

foreach f ($forecastTimes)
    custom_command <<EOF
        arg1=x$f;2
        arg2=ya
        arg3=z,z$f
        run
        exit
EOF
end
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top