쉘 스크립트 관련 질문입니다.

ed4kim의 이미지

리눅스 쉘 스크립트 테스트를 하려는데 도저히 감이 안오네요. 완전 백지상태라;;;

대략적인 내용은 이렇니다.

/test 폴더를 만들어놓고 여기에서 작동합니다. 대상은 t 라는 파일을 쓰거나 지우는 작업입니다.
예를 들어 test 폴더 안에 t 파일이 없으면 생성을, t 파일이 있으면 삭제를 하는 스크립트를 작성하고 싶습니다.

저정도를 알면 다른 스크립트 작성에도 어느정도는 응용이 가능할것 같은데 조언 부탁드립니다. 만약에 쉘스크립트 명령어가 잘 정리된 사이트가 있다면 그쪽으로 추천 부탁드립니다.

cinsk의 이미지

#!/bin/bash
 
set -C
if ! 2>/dev/null > /test/t; then
    rm -f /test/t
fi

위 script에서 생성/삭제는 atomic 하지 않습니다.

ed4kim의 이미지

답글 감사합니다.

그러고보니 질문에 해당 스크립트를 파일로 저장해서 실행해야 하는 방식이라는 설명을 붙인다는걸 깜박했습니다;
그리고 스크립트 중에 2>/dev/null 이 뭔가요?
예전에 어디서 find 로 SetUID파일을 찾는 방법에 2>/dev/null 을 붙여서 퍼미션이 없는 파일만 걸러내는 옵션을 봤는데 정확한 의미를 모르겠습니다.

로그파일에 데이터가 차서 용량이 많아질 경우 cat /dev/null > [로그경로/파일] 을 써서 파일만 놔두고 안의 내용은 삭제하는 형식으로 써본적은 있어요.

익명 사용자의 이미지

FILE=/test/t
[ -f $FILE ] && rm -f $FILE || touch $FILE

디렉토리가 있으면 삭제를 하지 않겠네요 ;;;

ed4kim의 이미지

답글 감사합니다~ 실제로 작성해보니 되네요 감사합니다~