当前位置: 技术问答>linux和unix
求助--一个C shell 的问题
来源: 互联网 发布时间:2016-09-06
本文导语: 想请教高手们一下C shell如何解释:r :t 等命令 比如说 set ABC = abc.txt echo ${ABC} 结果是:abc.txt echo ${ABC}:r 结果是:abc.tx...
想请教高手们一下C shell如何解释:r :t 等命令
比如说
set ABC = abc.txt
echo ${ABC}
结果是:abc.txt
echo ${ABC}:r
结果是:abc.txt:r
echo $ABC:r
结果是:abc
echo ${ABC:r}
结果是:abc
这是为什么呢?当:r与变量结合在一起的时候,是如何解析的呢?
先谢谢高手们了
比如说
set ABC = abc.txt
echo ${ABC}
结果是:abc.txt
echo ${ABC}:r
结果是:abc.txt:r
echo $ABC:r
结果是:abc
echo ${ABC:r}
结果是:abc
这是为什么呢?当:r与变量结合在一起的时候,是如何解析的呢?
先谢谢高手们了
|
使用${ABC}引用变量时,C Shell不会将后面的:r作为变量的修饰符,必须使用${ABC:r}。
使用$ABC应用变量是,C Shell会将后面的:r作为修饰符,效果等同于${ABC:r}。
使用$ABC应用变量是,C Shell会将后面的:r作为修饰符,效果等同于${ABC:r}。
|
这是csh的路径名变量修饰符。
var=/abc/def/file.txt
修饰符 含义 例子 结果
:r 根 echo $var:r /abc/def/file
:h 头 echo $var:h /abc/def
:t 尾 echo $var:t file.txt
:e 扩展 echo $var:e txt
:g 全局 echo $var:g 和上述修饰符配合使用如。var=(/home/*) echo $var:gt 得到所有不带路径的文件名
var=/abc/def/file.txt
修饰符 含义 例子 结果
:r 根 echo $var:r /abc/def/file
:h 头 echo $var:h /abc/def
:t 尾 echo $var:t file.txt
:e 扩展 echo $var:e txt
:g 全局 echo $var:g 和上述修饰符配合使用如。var=(/home/*) echo $var:gt 得到所有不带路径的文件名
|
$是变量的组成部分,:r是对变量的修饰。 通常情况下不需要用{},除非变量做连接的时候。