디렉토리를 잘라내고, 파일 이름과 확장자를 분리
$ filename=$(basename $pathandfile)
$ extension=${filename##*.}
$ filename=${filename%.*}

posted by 신묘군
TAG bash

댓글을 달아 주세요

  1.  Addr  Edit/Del  Reply 신묘군

    활용의 예

    for x in /딴디렉토리/figures/*prn; do filename=$(basename $x); ff=${filename%.*}; cp $x ./figures/$ff.ps; done

    딴 디렉토리의 모든 *.prn 파일을 *.ps 파일로 복사.

    2010.04.08 15:18
  2.  Addr  Edit/Del  Reply 나여...

    for x in *.prn; do fn=${x%.*}; ps2eps -f --rotate=+ $x; a2ping --Resolution=300 $fn.eps $fn.png; done

    2010.04.21 17:33

자세한 내용은 별도의 매뉴얼을 참조할 것.

자주쓰는 것
^A : 줄의 처음으로
^E : 줄의 끝으로
Alt-F (또는 Alt-오른쪽 화살표): 한 단어 앞으로 이동
Alt-B (또는 Alt-왼쪽 화살표) : 한 단어 뒤로 이동


posted by 신묘군

댓글을 달아 주세요

ns-2 2.29 all-in-one 버전을 데비안 4.0 환경에서 빌드하면 다음과 같은 에러가 발생합니다.

checking system version (for dynamic loading)... ./configure: line ????: syntax error near unexpected token `('
./configure: line ????: ????


여기서 ???? 라고 표기한 부분은 같은 종류의 에러가 여러군데에서 나는데 각기 줄 번호도 다르고 해당 줄의 내용도 다르기 때문에 그렇게 표기하였습니다.

이는 configure 파일을 쉘 처리기인 /bin/sh (보통은 /bin/bash로 심볼릭 링크가 되어 있지요) 읽어서 처리하는 과정에서 최근 버전의 bash와 이전 버전의 bash가 약간 다르게 동작하기 때문입니다. 에러가 나는 문장의 예는 다음과 같습니다.

system=MP-RAS-`awk '{print }' /etc/.relid'`

꼼꼼이 따옴표의 개수를 세보면 알겠지만 쓸데 없는 따옴표가 하나 더 있습니다. 즉, 맨 뒤에서 두번째 따옴표(')가 필요가 없습니다. (그런데 이전 버전의 bash에서는 이게 필요했다네요. 왜 그랬을까나...) 따라서, 해당 따옴표를 쓱 지워주면 빌드가 잘 됩니다.

문제는 이런 식으로 에러 나는 곳이 여러 곳이라 모두 찾아서 지워줘야 된다는거지요. ㅠㅠ

posted by 신묘군

댓글을 달아 주세요

  1.  Addr  Edit/Del  Reply 신묘군

    2.29.3 버전 이후로는 그런 문제가 없네요.

    g++/gcc 의 버전과 충돌 문제도 2.32 버전에서는 없음.

    2008.03.12 09:56
  2.  Addr  Edit/Del  Reply Joongsoo

    저도 2.28 버전 설치할 때 저것 때문에 하루를 날려버린 기억이 있습니다. ㅠㅠ
    bash가 최근 버전에선 스크립트 문법 체크가 강화됐다고 하더라구요. 제발 버전별로 다르게 동작하는 일 좀 없었음 좋겠습니다 .ㅎ

    2008.03.13 01:11
  3.  Addr  Edit/Del  Reply 하늘을 닮은 호수

    전 대학원때 2.19 이후로 깔아본 적이 없는데..
    많이 바뀌었군요?!
    근데, 어떤 일을 하시는데, ns-2까지 사용하시나요?! ㅎㅎ

    2008.03.13 09:49