[완료] .cshrc에서 $?prompt 라는 구문

김일영의 이미지

안녕하세요.
어떤 서버에서 받아온 각종 설정 파일들을 분석하고 있는 중입니다.
그 중 .cshrc 파일이 있는데요.

if ( <span>$?prompt</span> ) then
    set system = `hostname`
    set prompt = "$system !\: "
endif

대충 이런 식으로 되어 있습니다.

돌려보니 프롬프트 문자열에 숫자를 넣어주면서 사용자 입력을 기다리는 식으로 돌긴 하는 것 같은데
$?prompt 가 정확히 무슨 뜻인지요..?

검색을 해 봐도 $prompt 나 $1 이런거는 나와도 $?prompt 같은 것은 무슨 뜻인지 알 길이 없네요...
고수님의 도움 부탁드립니다.

semmal의 이미지

http://ogcm.kordi.re.kr/lecture/unix/faq/u2.html
------------------------------
How many legs does a dog have?

------------------------------
How many legs does a dog have?

김일영의 이미지

그냥 그런 의미다 라는 것만 나와 있네요.
뭐... 저도 그냥 원래 그런 의미로 쓰는 구문이라는 식으로 이해해야겠네요.

통 찾기 힘들었는데, 좋은 정보 알려주셔서 감사합니다.

김일영의 이미지

이건 또 무슨 조화인지...
set prompt = "$system !\: "
여기서 !\ 가 뭔가 했더니 이게 숫자를 찍어주는거군요...
무슨 원리로 무슨 숫자를 찍어주는건지는 모른다는... T.T

mycluster의 이미지

The C Shell Programming 이라는 책(대학교 2학년때인가, 3학년때인가 샀으니,
한 15년도 넘었을거 같은데...)에 아마 c shell에 대한 내용이 첫장에 잘 나와
있던걸로 기억이 드는데... 검색하니 잘 안나오네요...

그대신.. http://www.eng.hawaii.edu/Tutor/csh.html 이거 좋네요 ㅋㅋㅋ

첨부한 그림 보시면 이해 될 겁니다.

echo $?abc 하면 0 이 출력되고
echo $?prompt 하면 1 이 출력되죠?

즉, ?prompt 는 ?가 match하느냐 안하느냐니까, prompt라는 변수가 있냐? 있으면 $가 output을
출력해주니까, $?abc 는 0을 출력, $?prompt 는 1을 출력,

즉,
if ($?prompt) then
어쩌고 저쩌고...
endif

prompt라는게 있으면 프롬프트를
어쩌고 저쩌고로 정의해라... 이거겠죠?

if ( $?prompt ) then
set system = `hostname`
set prompt = "$system !\: "
endif

여기서보면 system에는 `hostname` 즉, hostname을 실행시켜서 돌아오는 결과값을 system이라는
변수에 넣어라... 이거죠... 자세히 보시면 ` 입니다 '가 아니라...
그리고 prompt에는 $system , 즉 system 변수값의 결과를 담고 !\ 이건 명령어 history 즉 실행
넘버가 찍히고, 그 다음에 : 를 표기하라는 거죠.

따라서 실제 prompt는 이렇게 나오겠죠. hostname이 host.myhost.co.kr 이라면
system = host.myhost.co.kr 이 들어갈거고
prompt 에는 host.myhost.co.kr 1: (깜빡깜빡) 과 같이 나오겠죠?

host.myhost.co.kr 1: clear 과 같이 명령어를 실행시킬때마다

host.myhost.co.kr 2: ls

이런식으로 숫자가 늘어나고, 나중에 숫자만 보고

host.myhost.co.kr 100 : !2

이렇게 치면 2번에서 실행했던 명령이 history로 실행되겠지요?

참고로 바로 전에 실행했던 명령어는 !!

아... 오랫만에 (실로 오랫만에....) 기억을 되살려볼려니 틀린게 있는지 몰겠습니다.
--------------------------------
윈도위의 리눅스 윈도위의 윈도우 리눅스위의 익스플로러

댓글 첨부 파일: 
첨부파일 크기
Image icon 1.png4.78 KB

--------------------------------
윈도위의 리눅스 윈도위의 윈도우 리눅스위의 익스플로러

김일영의 이미지

와~ 이렇게 자세히 설명해주시다니... 정말 고맙습니다.
역시 공부는 끝이 없군요~ 열쉼히 겅부 하도록 하겠습니다
다시 한번 감사드립니다.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.