<cshell> 현재 디렉토리에서 실행 후 다른디렉토리로 이동하여 머물기

jwchoi의 이미지

아래와 같은 쉘스크립트(test.csh)는 ${HOME}/2017/all_dat에서 실행(csh test.csh)하고,
그 결과 $mov로 이동했다는 것을 pwd로 명령어로 확인가능합니다.
하지만 다시 ${HOME}/2017/all_dat로 돌아옵니다.
((이 때문에,${today}디렉토리에서 실행되어야 하는 a.f90이 정상실행되지 않습니다.

원하는 디렉토리로 이동 후, 그곳에서 프로그램이 실행될 수 있도록 하는 방법이 무엇이 있을까요..?
도움부탁드리겠습니다ㅠㅠ!!

#####################################
#!/bin/csh
#########file_name = test.csh#########
set today = 20161231
while ( $today <= 20171225)

set mov=${HOME}/2017/all_dat/${today}
cd $mov
pwd

cat > a.f90 << EOF

<<생략>>

EOF

pgf90 a.f90
a.out

end
#####################################

File attachments: 
첨부파일 크기
Image icon asfasf.JPG22.85 KB
ymir의 이미지

뭔가 설명이 좀 이상하네요.

pwd 의 실행 결과는 ${HOME}/2017/all_dat/${today} 로 나오는데..
a.f90 이 ${HOME}/2017/all_dat/${today} 에 생성되지도 않고, 컴파일도 안 된다구요?

a.out 은 $PATH 상에 a.out 이 있는게 아니라면..
어디에 있는지 경로를 알 수 없으므로 실행되지 않습니다.
./a.out 또는 ${HOME}/2017/all_dat/${today}/a.out 과 같이 경로를 명확히 적어주어야 합니다.

되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』

chanik의 이미지

올려주신 스크립트 상에서는 pwd와 a.out 실행줄 사이에 디렉토리 이동이 이뤄질만한 여지가 안 보입니다.

혹시 a.out 말고 ./a.out 이라고 하면 해결되지 않을까요? PATH에 현재디렉토리(.)를 넣지 않고 쓰는 경우가 많으니까요.

HDNua의 이미지

C shell script는 그냥 실행하면 새 프로세스를 만들고 해당 프로세스 내에서 동작합니다.
터미널에서 test.csh 파일을 실행하면 test.csh를 실행하는 새 프로세스가 생기고
그 프로세스 안에서 cd $mov 동작은 잘 되기 때문에 pwd 결과는 옳습니다.
다만 이 프로세스가 끝나면 test.csh를 실행한 터미널로 돌아오고,
이 터미널에서 cd한 것은 아니기 때문에 test.csh를 실행한 위치에서 남아있게 되지요.

source test.csh 하시면 현재 실행중인 터미널에서 해당 스크립트를 바로 실행합니다.
원하시는 답변인지 모르겠으나 이런 실수도 은근 잦아서 코멘트 달아봐요.

저는 이렇게 생각했습니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.