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

📄 portabilityissues.html

📁 BASH Shell 编程 经典教程 《高级SHELL脚本编程》中文版
💻 HTML
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><HTML><HEAD><TITLE>可移植性问题</TITLE><METANAME="GENERATOR"CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINKREL="HOME"TITLE="高级Bash脚本编程指南"HREF="index.html"><LINKREL="UP"TITLE="杂项"HREF="miscellany.html"><LINKREL="PREVIOUS"TITLE="安全问题"HREF="securityissues.html"><LINKREL="NEXT"TITLE="Windows下的shell脚本"HREF="winscript.html"></HEAD><BODYCLASS="SECT1"BGCOLOR="#FFFFFF"TEXT="#000000"LINK="#0000FF"VLINK="#840084"ALINK="#0000FF"><DIVCLASS="NAVHEADER"><TABLESUMMARY="Header navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><THCOLSPAN="3"ALIGN="center">高级Bash脚本编程指南: 一本深入学习shell脚本艺术的书籍</TH></TR><TR><TDWIDTH="10%"ALIGN="left"VALIGN="bottom"><AHREF="securityissues.html"ACCESSKEY="P">前一页</A></TD><TDWIDTH="80%"ALIGN="center"VALIGN="bottom">33. 杂项</TD><TDWIDTH="10%"ALIGN="right"VALIGN="bottom"><AHREF="winscript.html"ACCESSKEY="N">下一页</A></TD></TR></TABLE><HRALIGN="LEFT"WIDTH="100%"></DIV><DIVCLASS="SECT1"><H1CLASS="SECT1"><ANAME="PORTABILITYISSUES">33.9. 可移植性问题</A></H1><P>这本书主要描述的是, 在GNU/Linux系统上, 如何处理特定于Bash的脚本. 	  但是使用<BCLASS="COMMAND">sh</B>和<BCLASS="COMMAND">ksh</B>的用户仍然会从这里找到很多有价值的东西. .</P><P>碰巧, 许多不同的shell脚本语言其实都遵循POSIX 1003.2标准. 		如果使用<CODECLASS="OPTION">--posix</CODE>选项来调用Bash, 	   或者在脚本头插入<BCLASS="COMMAND">set -o posix</B>, 	  那么将会使Bash与这个标准非常接近地保持一致. 	  另一种办法就是在脚本头使用	    <TABLEBORDER="0"BGCOLOR="#E0E0E0"WIDTH="100%"><TR><TD><FONTCOLOR="#000000"><PRECLASS="PROGRAMLISTING">  1&nbsp;#!/bin/sh</PRE></FONT></TD></TR></TABLE>	  而不是	    <TABLEBORDER="0"BGCOLOR="#E0E0E0"WIDTH="100%"><TR><TD><FONTCOLOR="#000000"><PRECLASS="PROGRAMLISTING">  1&nbsp;#!/bin/bash</PRE></FONT></TD></TR></TABLE>	  注意在Linux或者某些特定的UNIX上, <TTCLASS="FILENAME">/bin/sh</TT>其实只是一个指向<TTCLASS="FILENAME">/bin/bash</TT>的<AHREF="basic.html#LINKREF">链接</A>, 	  并且使用这种方法调用脚本的话, 将会禁用Bash的扩展功能. 	  </P><P>大多数的Bash脚本都好像运行在<BCLASS="COMMAND">ksh</B>上一样, 		  反过来看, 这是因为Chet Ramey一直致力于将<BCLASS="COMMAND">ksh</B>的特性移植到Bash的最新版本上. 	  </P><P>对于商业UNIX机器来说, 如果在脚本中包含了使用GNU特性的标准命令, 		 那么这些脚本可能不会正常运行. 	  但是在最近几年, 这个问题得到了极大的改观, 	  这是因为即使在<SPANCLASS="QUOTE">"大块头"</SPAN>UNIX上, 	  GNU工具包也非常好的替换掉了同类的私有工具. 	  对于原始的UNIX来说, 	  <AHREF="http://linux.oreillynet.com/pub/a/linux/2002/02/28/caldera.html"TARGET="_top">源代码的火山喷发</A>加剧了这种趋势. 	  </P><P>Bash具有的某些特性是传统的Bourne shell所缺乏的. 	  下面就是其中的一部分: 	<P></P><UL><LI><P>某些扩展的<AHREF="options.html#INVOCATIONOPTIONSREF">调用选项</A></P></LI><LI><P>使用<BCLASS="COMMAND">$(    )</B>形式的<AHREF="commandsub.html#COMMANDSUBREF">命令替换</A></P></LI><LI><P>某些<AHREF="string-manipulation.html#STRINGMANIP">字符串处理</A>操作符</P></LI><LI><P><AHREF="process-sub.html#PROCESSSUBREF">进程替换</A></P></LI><LI><P>Bash特有的<AHREF="internal.html#BUILTINREF">内建命令</A></P></LI></UL>	</P><P>请参考<AHREF="ftp://ftp.cwru.edu/pub/bash/FAQ"TARGET="_top">Bash	   F.A.Q.</A>, 你将会获得完整的列表. </P></DIV><DIVCLASS="NAVFOOTER"><HRALIGN="LEFT"WIDTH="100%"><TABLESUMMARY="Footer navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top"><AHREF="securityissues.html"ACCESSKEY="P">前一页</A></TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="index.html"ACCESSKEY="H">首页</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top"><AHREF="winscript.html"ACCESSKEY="N">下一页</A></TD></TR><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top">安全问题</TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="miscellany.html"ACCESSKEY="U">上一级</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top">Windows下的shell脚本</TD></TR></TABLE></DIV></BODY></HTML>

⌨️ 快捷键说明

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