sitelink1 http://wiki.kldp.org/HOWTO/html/Adv-Bash...batch.html 
sitelink2  
sitelink3  
extra_vars6  
아주 많은 프로그래머들은 PC 위에서 도는 도스에서 스크립트를 배웠습니다. 기능이 조금 떨어지는 도스 배치 파일 언어로도 꽤 강력한 스크립트나 어플리케이션을 작성할 수도 있지만 그렇게 하려면 아주 해박한 지식을 사용해 해결책을 찾거나 꽁수를 부려야 합니다. 가끔은 오래된 도스용 배치 파일을 유닉스 쉘 스크립트로 변환해서 써야될 경우가 생기지만 이렇게 하는것이 그렇게 어렵지만은 않습니다. 왜냐하면 도스 배치 파일 연산자들이 기능이 동일한 쉘 스크립트 연산자의 서브셋에 불과하기 때문입니다.

표 G-1. 배치 파일 키워드/변수/연산자 와 그에 해당하는 쉘 동의어

배치 파일 연산자쉘 스크립트 동의어
%$명령어줄 매개변수 접두사
/-명령어 옵션 플래그
/디렉토리 패스 구분자
===(같음) 문자열 비교 테스트
!==!!=(다름) 문자열 비교 테스트
||파이프
@set +v현재 명령어를 에코하지 말 것
**파일명 "와일드 카드"
>>파일 재지향(덮어 쓰기)
>>>>파일 재지향(덧붙여 쓰기)
<<표준입력 재지향
%VAR%$VAR환경 변수
REM#주석
NOT!뒤에 나오는 테스트 부정
NUL/dev/null명령어 출력을 없애기 위한 "블랙홀"
ECHOecho에코 (Bash 에는 옵션이 많이 있음)
ECHO.echo빈 줄 에코
ECHO OFFset +v다음에 나오는 명령어를 에코하지 말 것
FOR %%VAR IN (LIST) DOfor var in [list]; do"for" 루프
:LABEL없음 (필요치 않음)라벨
GOTO없음 (대신 함수를 씀)스크립트의 다른 곳으로 건너 뜀
PAUSEsleep일정 간격을 두고 잠시 대기
CHOICEcase 나 select메뉴 선택
IFifif-test
IF EXIST FILENAMEif [ -e filename ]파일이 존재하는지 확인
IF !%N==!if [ -z "$N" ]변경가능한 매개변수인 "N"이 없다면
CALLsource 나 . (도트 연산자)다른 스크립트를 "포함"
COMMAND /Csource 나 . (도트 연산자)다른 스크립트를 "포함"(CALL과 동일)
SETexport환경 변수를 세트
SHIFTshift명령어줄 변수 목록을 왼쪽으로 이동(shift)
SGN-lt or -gt(정수) 부호(sign)
ERRORLEVEL$?종료 상태
CONstdin"콘솔"(표준입력)
PRN/dev/lp0(일반적인) 프린터 디바이스
LP1/dev/lp0첫번째 프린터 디바이스
COM1/dev/ttyS0첫번째 시리얼 포트

배치 파일은 대개 도스 명령어를 갖고 있습니다. 도스용 배치 파일이 쉘 스크립트로 변환되기 위해서는 이 명령어들은 꼭 동일한 유닉스 명령어로 변환되어야 합니다.

표 G-2. 도스 명령어와 동일한 유닉스 명령어

도스 명령어동일한 유닉스 명령어효과
ASSIGNln파일이나 디렉토리를 링크
ATTRIBchmod파일 퍼미션 변경
CDcd디렉토리 변경
CHDIRcd디렉토리 변경
CLSclear스크린 지우기
COMPcmp or diff파일 비교
COPYcp파일 복사
Ctl-CCtl-C정지(시그널)
Ctl-ZCtl-DEOF (end-of-file)
DELrm파일 삭제
DELTREErm -rf디렉토리의 하위 디렉토리까지 포함해서 삭제
DIRls -l디렉토리 보이기
ERASErm파일 삭제
EXITexit현재 프로세스 종료
FCcomm, cmp파일 비교
FINDgrep파일안에서 문자열 찾기
MDmkdir디렉토리 생성
MKDIRmkdir디렉토리 생성
MOREmore텍스트 파일 쪽단위(paging) 필터
MOVEmv이동
PATH$PATH실행파일들의 경로
RENmv이름 바꾸기(이동)
RENAMEmv이름 바꾸기(이동)
RDrmdir디렉토리 삭제
RMDIRrmdir디렉토리 삭제
SORTsort파일 정렬
TIMEdate시스템 시간 보여주기
TYPEcat파일을 표준출력으로 출력
XCOPYcp(확장) 파일 복사

참고: 사실 모든 유닉스, 쉘 연산자, 명령어들은 그들과 동일한 도스용보다 많은 옵션과 강력한 기능을 갖고 있습니다. 많은 배치 파일 스크립트들은 read의 불완전한 버전인 ask.com같은 외부 유틸리티에 의존합니다.

도스는 파일명 와일드 카드 확장에 대해서 오직 *? 문자만을 인식하는 제한되고 부족한 서브셋을 지원합니다.

도스 배치 파일을 쉘 스크립트로 변환하는 것은 일반적으로 매우 간단하고 가끔은 변환된 쉘 스크립트가 원래 도스 배치 파일보다 더 이해하기 쉬운 경우도 있습니다.

예 G-1. VIEWDATA.BAT: 도스용 배치 파일

REM VIEWDATAREM PAUL SOMERSON의 "DOS POWERTOOLS"의 예제에서 영감을 받아 작성@ECHO OFFIF !%1==! GOTO VIEWDATAREM  명령어줄 인자가 없다면...FIND "%1" C:BOZOBOOKLIST.TXTGOTO EXIT0REM  문자열이 일치하는 줄을 출력후 종료.:VIEWDATATYPE C:BOZOBOOKLIST.TXT | MOREREM  한 번에 한 쪽씩 전체 파일을 보여줌.:EXIT0

스크립트 변환을 하면 기능이 다소 개량됩니다.

예 G-2. viewdata.sh: VIEWDATA.BAT 의 스크립트 버전

#!/bin/bash# VIEWDATA.BAT 를 쉘 스크립트로 변환.DATAFILE=/home/bozo/datafiles/book-collection.dataARGNO=1# @ECHO OFF       여기서 이 명령어는 필요없습니다.if [ $# -lt "$ARGNO" ]    # IF !%1==! GOTO VIEWDATAthen  less $DATAFILE          # TYPE C:MYDIRBOOKLIST.TXT | MOREelse  grep "$1" $DATAFILE     # FIND "%1" C:MYDIRBOOKLIST.TXTfi  exit 0                    # :EXIT0# GOTO, 라벨, 속임수, 엉터리 구문등이 필요없어졌죠.# 원래 배치 파일보다 더 짧고, 더 쉽고, 더 깔끔합니다.

Ted Davis 의 Shell Scripts on the PC 사이트에서는 구식 배치 파일 프로그래밍에 대한 포괄적인 튜토리얼을 소개하고 있습니다. 생각건대, 그의 독창적인 몇몇 테크닉들은 쉘 스크립트와 연관성이 있습니다.

번호 제목 sitelink1 글쓴이 날짜 조회 수
83 윈도우7에서 FTP를 네트웍드라이브로 연결 file   황제낙엽 2015.12.31 853
82 [RDP Wrapper1.6]윈도우10 에서 멀티 세션으로 원격 접속하기 secret https://github.com/stascorp/rdpwrap/releases  황제낙엽 2015.11.25 8395
81 VMware Player를 계속 무료로 사용할 수 있습니까? https://www.vmware.com/kr/products/player/faqs/faqs  황제낙엽 2015.06.26 748
80 버추얼박스 라이선스 정보 https://www.virtualbox.org/wiki/Licensing_FAQ  황제낙엽 2015.06.23 621
79 Windows7 제품과 라이선스 종류 file   황제낙엽 2014.03.13 851
78 XP 업데이트 사이트 http://shining96.tistory.com/257  황제낙엽 2013.10.29 885
77 비스타에서 심볼릭링크,하드링크,디렉토리교차점 생성방법 - mklink 명령어 [1]   황제낙엽 2013.08.31 1021
76 XP 시스템 종료 명령어   황제낙엽 2012.04.05 679
75 Unicode Character 'COMMA' (U+002C)   황제낙엽 2011.11.28 969
74 윈도우7 단축키 모음   황제낙엽 2011.03.11 725
» 도스(DOS) 배치 파일을 쉘 스크립트로 변환 http://wiki.kldp.org/HOWTO/html/Adv-Bash...batch.html  황제낙엽 2010.07.23 933
72 [문법] bat(배치)파일 문법 http://blog.naver.com/faceuptoit?Redirec...0004435796  황제낙엽 2010.07.23 763
71 BAT 파일로 프로그램 실행 후 도스창 자동 닫기 http://blog.naver.com/parang3o?Redirect=...0107530173  황제낙엽 2010.07.23 850
70 [Batch]배치파일(.BAT)로, 파일 출력, 텍스트 파일(Text File) 만드는 방법 http://everdream.egloos.com/2971749  황제낙엽 2010.07.23 845
69 Information on batch files   황제낙엽 2010.07.23 1307
68 [문법] 배치 프로그래밍 http://cafe.naver.com/mynet.cafe?iframe_...ticleid=13  황제낙엽 2010.07.23 816
67 [문법] 배치파일 문법(.bat) http://blog.naver.com/6420h?Redirect=Log...0095322019  황제낙엽 2010.07.23 863
66 Samba 설치   황제낙엽 2009.11.13 914
65 리눅스에서 파일 다운로드   황제낙엽 2009.11.13 650
64 리눅스 os(kernel) version 정보 확인   황제낙엽 2009.11.13 716