⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dosbatch.html

📁 Shall高级编程
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><HTML><HEAD><TITLE>Converting DOS Batch Files to Shell Scripts</TITLE><METANAME="GENERATOR"CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+"><LINKREL="HOME"TITLE="Advanced Bash-Scripting Guide"HREF="index.html"><LINKREL="PREVIOUS"TITLE="A Sample .bashrc File"HREF="sample-bashrc.html"><LINKREL="NEXT"TITLE="Exercises"HREF="exercises.html"><METAHTTP-EQUIV="Content-Style-Type"CONTENT="text/css"><LINKREL="stylesheet"HREF="common/kde-common.css"TYPE="text/css"><METAHTTP-EQUIV="Content-Type"CONTENT="text/html; charset=iso-8859-1"><METAHTTP-EQUIV="Content-Language"CONTENT="en"><LINKREL="stylesheet"HREF="common/kde-localised.css"TYPE="text/css"TITLE="KDE-English"><LINKREL="stylesheet"HREF="common/kde-default.css"TYPE="text/css"TITLE="KDE-Default"></HEAD><BODYCLASS="APPENDIX"BGCOLOR="#FFFFFF"TEXT="#000000"LINK="#AA0000"VLINK="#AA0055"ALINK="#AA0000"STYLE="font-family: sans-serif;"><DIVCLASS="NAVHEADER"><TABLESUMMARY="Header navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><THCOLSPAN="3"ALIGN="center">Advanced Bash-Scripting Guide: An in-depth exploration of the art of shell scripting</TH></TR><TR><TDWIDTH="10%"ALIGN="left"VALIGN="bottom"><AHREF="sample-bashrc.html"ACCESSKEY="P">Prev</A></TD><TDWIDTH="80%"ALIGN="center"VALIGN="bottom"></TD><TDWIDTH="10%"ALIGN="right"VALIGN="bottom"><AHREF="exercises.html"ACCESSKEY="N">Next</A></TD></TR></TABLE><HRALIGN="LEFT"WIDTH="100%"></DIV><DIVCLASS="APPENDIX"><H1><ANAME="DOSBATCH"></A>Appendix L. Converting DOS Batch Files to Shell Scripts</H1><P><ANAME="DOSBATCH1"></A></P><P>Quite a number of programmers learned scripting on a PC running    DOS. Even the crippled DOS batch file language allowed writing some    fairly powerful scripts and applications, though they often required    extensive kludges and workarounds. Occasionally, the need still    arises to convert an old DOS batch file to a UNIX shell script. This    is generally not difficult, as DOS batch file operators are only a    limited subset of the equivalent shell scripting ones.</P><DIVCLASS="TABLE"><HR><ANAME="AEN22032"></A><P><B>Table L-1. Batch file keywords / variables / operators, and their shell equivalents</B></P><TABLEBORDER="1"CLASS="CALSTABLE"><THEAD><TR><THALIGN="LEFT"VALIGN="TOP">Batch File Operator</TH><THALIGN="LEFT"VALIGN="TOP">Shell Script Equivalent</TH><THALIGN="LEFT"VALIGN="TOP">Meaning</TH></TR></THEAD><TBODY><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">%</TT></TD><TDALIGN="LEFT"VALIGN="TOP">$</TD><TDALIGN="LEFT"VALIGN="TOP">command-line parameter prefix</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">/</TT></TD><TDALIGN="LEFT"VALIGN="TOP">-</TD><TDALIGN="LEFT"VALIGN="TOP">command option flag</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">\</TT></TD><TDALIGN="LEFT"VALIGN="TOP">/</TD><TDALIGN="LEFT"VALIGN="TOP">directory path separator</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">==</TT></TD><TDALIGN="LEFT"VALIGN="TOP">=</TD><TDALIGN="LEFT"VALIGN="TOP">(equal-to) string comparison test</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">!==!</TT></TD><TDALIGN="LEFT"VALIGN="TOP">!=</TD><TDALIGN="LEFT"VALIGN="TOP">(not equal-to) string comparison test</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">|</TT></TD><TDALIGN="LEFT"VALIGN="TOP">|</TD><TDALIGN="LEFT"VALIGN="TOP">pipe</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">@</TT></TD><TDALIGN="LEFT"VALIGN="TOP">set <TTCLASS="OPTION">+v</TT></TD><TDALIGN="LEFT"VALIGN="TOP">do not echo current command</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">*</TT></TD><TDALIGN="LEFT"VALIGN="TOP">*</TD><TDALIGN="LEFT"VALIGN="TOP">filename <SPANCLASS="QUOTE">"wild card"</SPAN></TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">&#62;</TT></TD><TDALIGN="LEFT"VALIGN="TOP">&#62;</TD><TDALIGN="LEFT"VALIGN="TOP">file redirection (overwrite)</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">&#62;&#62;</TT></TD><TDALIGN="LEFT"VALIGN="TOP">&#62;&#62;</TD><TDALIGN="LEFT"VALIGN="TOP">file redirection (append)</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">&#60;</TT></TD><TDALIGN="LEFT"VALIGN="TOP">&#60;</TD><TDALIGN="LEFT"VALIGN="TOP">redirect <TTCLASS="FILENAME">stdin</TT></TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">%VAR%</TT></TD><TDALIGN="LEFT"VALIGN="TOP">$VAR</TD><TDALIGN="LEFT"VALIGN="TOP">environmental variable</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">REM</TT></TD><TDALIGN="LEFT"VALIGN="TOP">#</TD><TDALIGN="LEFT"VALIGN="TOP">comment</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">NOT</TT></TD><TDALIGN="LEFT"VALIGN="TOP">!</TD><TDALIGN="LEFT"VALIGN="TOP">negate following test</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">NUL</TT></TD><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="FILENAME">/dev/null</TT></TD><TDALIGN="LEFT"VALIGN="TOP"><SPANCLASS="QUOTE">"black hole"</SPAN> for burying command output</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">ECHO</TT></TD><TDALIGN="LEFT"VALIGN="TOP">echo</TD><TDALIGN="LEFT"VALIGN="TOP">echo (many more option in Bash)</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">ECHO.</TT></TD><TDALIGN="LEFT"VALIGN="TOP">echo</TD><TDALIGN="LEFT"VALIGN="TOP">echo blank line</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">ECHO OFF</TT></TD><TDALIGN="LEFT"VALIGN="TOP">set <TTCLASS="OPTION">+v</TT></TD><TDALIGN="LEFT"VALIGN="TOP">do not echo command(s) following</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">FOR %%VAR IN (LIST) DO</TT></TD><TDALIGN="LEFT"VALIGN="TOP">for var in [list]; do</TD><TDALIGN="LEFT"VALIGN="TOP"><SPANCLASS="QUOTE">"for"</SPAN> loop</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">:LABEL</TT></TD><TDALIGN="LEFT"VALIGN="TOP">none (unnecessary)</TD><TDALIGN="LEFT"VALIGN="TOP">label</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">GOTO</TT></TD><TDALIGN="LEFT"VALIGN="TOP">none (use a function)</TD><TDALIGN="LEFT"VALIGN="TOP">jump to another location in the script</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">PAUSE</TT></TD><TDALIGN="LEFT"VALIGN="TOP">sleep</TD><TDALIGN="LEFT"VALIGN="TOP">pause or wait an interval</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">CHOICE</TT></TD><TDALIGN="LEFT"VALIGN="TOP">case or select</TD><TDALIGN="LEFT"VALIGN="TOP">menu choice</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">IF</TT></TD><TDALIGN="LEFT"VALIGN="TOP">if</TD><TDALIGN="LEFT"VALIGN="TOP">if-test</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">IF EXIST <TTCLASS="REPLACEABLE"><I>FILENAME</I></TT></TT></TD><TDALIGN="LEFT"VALIGN="TOP">if [ -e filename ]</TD><TDALIGN="LEFT"VALIGN="TOP">test if file exists</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">IF !%N==!</TT></TD><TDALIGN="LEFT"VALIGN="TOP">if [ -z "$N" ]</TD><TDALIGN="LEFT"VALIGN="TOP">if replaceable parameter <SPANCLASS="QUOTE">"N"</SPAN> not present</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">CALL</TT></TD><TDALIGN="LEFT"VALIGN="TOP">source or . (dot operator)</TD><TDALIGN="LEFT"VALIGN="TOP"><SPANCLASS="QUOTE">"include"</SPAN> another script</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">COMMAND /C</TT></TD><TDALIGN="LEFT"VALIGN="TOP">source or . (dot operator)</TD><TDALIGN="LEFT"VALIGN="TOP"><SPANCLASS="QUOTE">"include"</SPAN> another script (same as	        CALL)</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">SET</TT></TD><TDALIGN="LEFT"VALIGN="TOP">export</TD><TDALIGN="LEFT"VALIGN="TOP">set an environmental variable</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">SHIFT</TT></TD><TDALIGN="LEFT"VALIGN="TOP">shift</TD><TDALIGN="LEFT"VALIGN="TOP">left shift command-line argument list</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">SGN</TT></TD><TDALIGN="LEFT"VALIGN="TOP">-lt or -gt</TD><TDALIGN="LEFT"VALIGN="TOP">sign (of integer)</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">ERRORLEVEL</TT></TD><TDALIGN="LEFT"VALIGN="TOP">$?</TD><TDALIGN="LEFT"VALIGN="TOP">exit status</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">CON</TT></TD><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="FILENAME">stdin</TT></TD><TDALIGN="LEFT"VALIGN="TOP"><SPANCLASS="QUOTE">"console"</SPAN> (<TTCLASS="FILENAME">stdin</TT>)</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">PRN</TT></TD><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="FILENAME">/dev/lp0</TT></TD><TDALIGN="LEFT"VALIGN="TOP">(generic) printer device</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">LPT1</TT></TD><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="FILENAME">/dev/lp0</TT></TD><TDALIGN="LEFT"VALIGN="TOP">first printer device</TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">COM1</TT></TD><TDALIGN="LEFT"VALIGN="TOP"><TTCLASS="FILENAME">/dev/ttyS0</TT></TD><TDALIGN="LEFT"VALIGN="TOP">first serial port</TD></TR></TBODY

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -