Converting DOS Batch Files to Shell Scripts

Batch file keywords / variables / operators, and their shell equivalents

Batch File OperatorShell Script EquivalentMeaning
%$command-line parameter prefix
/command option flag
\/directory path separator
===(equal-to) string comparison test
!==!!=(not equal-to) string comparison test
@set +vdo not echo current command
**filename “wild card”
>>file redirection (overwrite)
>>>>file redirection (append)
<<redirect stdin
%VAR%$VARenvironmental variable
NOT!negate following test
NUL/dev/null“black hole” for burying command output
ECHOechoecho (many more option in Bash)
ECHO.echoecho blank line
ECHO OFFset +vdo not echo command(s) following
FOR %%VAR IN (LIST) DOfor var in [list]; do“for” loop
:LABELnone (unnecessary)label
GOTOnone (use a function)jump to another location in the script
PAUSEsleeppause or wait an interval
CHOICEcase or selectmenu choice
IF EXIST FILENAMEif [ -e filename ]test if file exists
IF !%N==!if [ -z “$N” ]if replaceable parameter “N” not present
CALLsource or . (dot operator)“include” another script
COMMAND /Csource or . (dot operator)“include” another script (same as CALL)
SETexportset an environmental variable
SHIFTshiftleft shift command-line argument list
SGN-lt or -gtsign (of integer)
ERRORLEVEL$?exit status
CONstdin“console” (stdin)
PRN/dev/lp0(generic) printer device
LPT1/dev/lp0first printer device
COM1/dev/ttyS0first serial port