mca*_*dre 12 shell bash shell-script posix
"${blah}"在 POSIX sh 中是允许的,还是需要 bash 派生的 shell?
Gil*_*il' 20
"${blah}"并且"$blah"是可移植的 shell 语法:它们适用于所有符合 POSIX 的 shell 以及传统的 Bourne shell。POSIX 还需要变量扩展的其他特性:
${VAR#PREFIX},${VAR##PREFIX},${VAR%SUFFIX}和${VAR%%SUFFIX}。${VAR-DEFAULT},${VAR=DEFAULT},${VAR+FALLBACK}和${VAR?MESSAGE}以及与未设置,或空的变体:-,:=,:+和:?。${#VAR}。在所有情况下,请记住,除非在双引号中(或其他一些不允许多个单词的上下文),否则结果会$…经历空格拆分(更准确地说,在$IFS字符处拆分)和通配符扩展(通配符)。
您可以通过阅读规范来查找 POSIX 中存在的内容。POSIX 的现代版本与Open Group 基本规范相同(没有可选组件)。旧版本是Single Unix v2的子集。
如今,没有 POSIX shell 的类 Unix 系统极为罕见。/bin/sh是一些系统上的非 POSIX Bourne shell,特别是 Solaris,但 POSIX shell 是可用的(/usr/xpg4/bin/sh在 Solaris 上,你应该在你的 PATH 中/usr/xpg4/bin提前/usr/bin)。如果您需要与 Bourne shell 兼容,请查看您感兴趣的系统上的手册页,因为有许多版本的 sh 具有略有不同的功能集。Sven Mascheck 维护了一个包含大量信息的页面。
在 POSIX 规范中关于参数扩展的部分说......
参数扩展的格式如下:
${表达式}
其中表达式由匹配“}”之前的所有字符组成。
剪断
参数扩展的最简单形式是:
${参数}
然后在双引号部分......
用双引号 ( "" ) 括起来的字符应保留双引号内所有字符的字面值,但字符反引号、 和 除外,如下所示:
$美元符号应保留其引入参数扩展(请参阅参数扩展)、命令替换形式(请参阅命令替换)和算术扩展(请参阅算术扩展)的特殊含义。
所以,是的。
| 归档时间: |
|
| 查看次数: |
5386 次 |
| 最近记录: |