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

📄 basename.html

📁 IEEE 1003.1-2003, Single Unix Specification v3
💻 HTML
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta name="generator" content="HTML Tidy, see www.w3.org"><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><link type="text/css" rel="stylesheet" href="style.css"><!-- Generated by The Open Group's rhtm tool v1.2.1 --><!-- Copyright (c) 2001-2003 The Open Group, All Rights Reserved --><title>basename</title></head><body bgcolor="white"><script type="text/javascript" language="JavaScript" src="../jscript/codes.js"></script><basefont size="3"> <a name="basename"></a> <a name="tag_04_07"></a><!-- basename --> <!--header start--><center><font size="2">The Open Group Base Specifications Issue 6<br>IEEE Std 1003.1, 2003 Edition<br>Copyright &copy; 2001-2003 The IEEE and The Open Group, All Rights reserved.</font></center><!--header end--><hr size="2" noshade><h4><a name="tag_04_07_01"></a>NAME</h4><blockquote>basename - return non-directory portion of a pathname</blockquote><h4><a name="tag_04_07_02"></a>SYNOPSIS</h4><blockquote class="synopsis"><p><code><tt>basename</tt> <i>string</i> <b>[</b><i>suffix</i><b>]</b></code></p></blockquote><h4><a name="tag_04_07_03"></a>DESCRIPTION</h4><blockquote><p>The <i>string</i> operand shall be treated as a pathname, as defined in the Base Definitions volume ofIEEE&nbsp;Std&nbsp;1003.1-2001, <a href="../basedefs/xbd_chap03.html#tag_03_266">Section 3.266, Pathname</a>. The string<i>string</i> shall be converted to the filename corresponding to the last pathname component in <i>string</i> and then the suffixstring <i>suffix</i>, if present, shall be removed. This shall be done by performing actions equivalent to the following steps inorder:</p><ol><li><p>If <i>string</i> is a null string, it is unspecified whether the resulting string is <tt>'.'</tt> or a null string. In eithercase, skip steps 2 through 6.</p></li><li><p>If <i>string</i> is <tt>"//"</tt> , it is implementation-defined whether steps 3 to 6 are skipped or processed.</p></li><li><p>If <i>string</i> consists entirely of slash characters, <i>string</i> shall be set to a single slash character. In this case,skip steps 4 to 6.</p></li><li><p>If there are any trailing slash characters in <i>string</i>, they shall be removed.</p></li><li><p>If there are any slash characters remaining in <i>string</i>, the prefix of <i>string</i> up to and including the last slashcharacter in <i>string</i> shall be removed.</p></li><li><p>If the <i>suffix</i> operand is present, is not identical to the characters remaining in <i>string</i>, and is identical to asuffix of the characters remaining in <i>string</i>, the suffix <i>suffix</i> shall be removed from <i>string</i>. Otherwise,<i>string</i> is not modified by this step. It shall not be considered an error if <i>suffix</i> is not found in <i>string</i>.</p></li></ol><p>The resulting string shall be written to standard output.</p></blockquote><h4><a name="tag_04_07_04"></a>OPTIONS</h4><blockquote><p>None.</p></blockquote><h4><a name="tag_04_07_05"></a>OPERANDS</h4><blockquote><p>The following operands shall be supported:</p><dl compact><dt><i>string</i></dt><dd>A string.</dd><dt><i>suffix</i></dt><dd>A string.</dd></dl></blockquote><h4><a name="tag_04_07_06"></a>STDIN</h4><blockquote><p>Not used.</p></blockquote><h4><a name="tag_04_07_07"></a>INPUT FILES</h4><blockquote><p>None.</p></blockquote><h4><a name="tag_04_07_08"></a>ENVIRONMENT VARIABLES</h4><blockquote><p>The following environment variables shall affect the execution of <i>basename</i>:</p><dl compact><dt><i>LANG</i></dt><dd>Provide a default value for the internationalization variables that are unset or null. (See the Base Definitions volume ofIEEE&nbsp;Std&nbsp;1003.1-2001, <a href="../basedefs/xbd_chap08.html#tag_08_02">Section 8.2, Internationalization Variables</a> forthe precedence of internationalization variables used to determine the values of locale categories.)</dd><dt><i>LC_ALL</i></dt><dd>If set to a non-empty string value, override the values of all the other internationalization variables.</dd><dt><i>LC_CTYPE</i></dt><dd>Determine the locale for the interpretation of sequences of bytes of text data as characters (for example, single-byte asopposed to multi-byte characters in arguments).</dd><dt><i>LC_MESSAGES</i></dt><dd>Determine the locale that should be used to affect the format and contents of diagnostic messages written to standarderror.</dd><dt><i>NLSPATH</i></dt><dd><sup>[<a href="javascript:open_code('XSI')">XSI</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]" border="0">Determine the location of message catalogs for the processing of <i>LC_MESSAGES .</i> <img src="../images/opt-end.gif" alt="[Option End]" border="0"></dd></dl></blockquote><h4><a name="tag_04_07_09"></a>ASYNCHRONOUS EVENTS</h4><blockquote><p>Default.</p></blockquote><h4><a name="tag_04_07_10"></a>STDOUT</h4><blockquote><p>The <i>basename</i> utility shall write a line to the standard output in the following format:</p><pre><tt>"%s\n", &lt;</tt><i>resulting string</i><tt>&gt;</tt></pre></blockquote><h4><a name="tag_04_07_11"></a>STDERR</h4><blockquote><p>The standard error shall be used only for diagnostic messages.</p></blockquote><h4><a name="tag_04_07_12"></a>OUTPUT FILES</h4><blockquote><p>None.</p></blockquote><h4><a name="tag_04_07_13"></a>EXTENDED DESCRIPTION</h4><blockquote><p>None.</p></blockquote><h4><a name="tag_04_07_14"></a>EXIT STATUS</h4><blockquote><p>The following exit values shall be returned:</p><dl compact><dt>&nbsp;0</dt><dd>Successful completion.</dd><dt>&gt;0</dt><dd>An error occurred.</dd></dl></blockquote><h4><a name="tag_04_07_15"></a>CONSEQUENCES OF ERRORS</h4><blockquote><p>Default.</p></blockquote><hr><div class="box"><em>The following sections are informative.</em></div><h4><a name="tag_04_07_16"></a>APPLICATION USAGE</h4><blockquote><p>The definition of <i>pathname</i> specifies implementation-defined behavior for pathnames starting with two slash characters.Therefore, applications shall not arbitrarily add slashes to the beginning of a pathname unless they can ensure that there are moreor less than two or are prepared to deal with the implementation-defined consequences.</p></blockquote><h4><a name="tag_04_07_17"></a>EXAMPLES</h4><blockquote><p>If the string <i>string</i> is a valid pathname:</p><pre><tt>$(basename "</tt><i>string</i><tt>")</tt></pre><p>produces a filename that could be used to open the file named by <i>string</i> in the directory returned by:</p><pre><tt>$(dirname "</tt><i>string</i><tt>")</tt></pre><p>If the string <i>string</i> is not a valid pathname, the same algorithm is used, but the result need not be a valid filename.The <i>basename</i> utility is not expected to make any judgements about the validity of <i>string</i> as a pathname; it justfollows the specified algorithm to produce a result string.</p><p>The following shell script compiles <b>/usr/src/cmd/cat.c</b> and moves the output to a file named <b>cat</b> in the currentdirectory when invoked with the argument <b>/usr/src/cmd/cat</b> or with the argument <b>/usr/src/cmd/cat.c</b>:</p><pre><tt>c99 $(dirname "$1")/$(basename "$1" .c).cmv a.out $(basename "$1" .c)</tt></pre></blockquote><h4><a name="tag_04_07_18"></a>RATIONALE</h4><blockquote><p>The behaviors of <i>basename</i> and <a href="../utilities/dirname.html"><i>dirname</i></a> have been coordinated so that when<i>string</i> is a valid pathname:</p><pre><tt>$(basename "</tt><i>string</i><tt>")</tt></pre><p>would be a valid filename for the file in the directory:</p><pre><tt>$(dirname "</tt><i>string</i><tt>")</tt></pre><p>This would not work for the early proposal versions of these utilities due to the way it specified handling of trailingslashes.</p><p>Since the definition of <i>pathname</i> specifies implementation-defined behavior for pathnames starting with two slashcharacters, this volume of IEEE&nbsp;Std&nbsp;1003.1-2001 specifies similar implementation-defined behavior for the <i>basename</i>and <a href="../utilities/dirname.html"><i>dirname</i></a> utilities.</p></blockquote><h4><a name="tag_04_07_19"></a>FUTURE DIRECTIONS</h4><blockquote><p>None.</p></blockquote><h4><a name="tag_04_07_20"></a>SEE ALSO</h4><blockquote><p><a href="xcu_chap02.html#tag_02_05"><i>Parameters and Variables</i></a> , <a href="dirname.html"><i>dirname</i>()</a></p></blockquote><h4><a name="tag_04_07_21"></a>CHANGE HISTORY</h4><blockquote><p>First released in Issue 2.</p></blockquote><h4><a name="tag_04_07_22"></a>Issue 6</h4><blockquote><p>IEEE PASC Interpretation 1003.2 #164 is applied.</p><p>The normative text is reworded to avoid use of the term &quot;must&quot; for application requirements.</p></blockquote><div class="box"><em>End of informative text.</em></div><hr><hr size="2" noshade><center><font size="2"><!--footer start-->UNIX &reg; is a registered Trademark of The Open Group.<br>POSIX &reg; is a registered Trademark of The IEEE.<br>[ <a href="../mindex.html">Main Index</a> | <a href="../basedefs/contents.html">XBD</a> | <a href="../utilities/contents.html">XCU</a> | <a href="../functions/contents.html">XSH</a> | <a href="../xrat/contents.html">XRAT</a>]</font></center><!--footer end--><hr size="2" noshade></body></html>

⌨️ 快捷键说明

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