标题: 几种shell里的小括号,大括号结构和有括号的变量,命令的用法 我一下子也想不起该起什么标题,就取了这样一个不太合适的标题
在这里我想说的是几种shell里的小括号,大括号结构和有括号的变量,命令的用法,如下: PHP 代码: 1
${var} 2
$(cmd) 3
()和{} 4
${var:-string},${var:+string},${var:=string},${var:
string} 5
$((exp)) 6
$(var%pattern),$(var%%pattern),$(var#pattern),$(var##pattern) 现在分述如下: 1
Shell中变量的原形:${var} 大家常见的变量形式都是$var,如 PHP 代码: $ var=test $ echo $var test 但当你要显示变量值加随意的字符(我这里用AA)时,就会出错,如下: PHP 代码: $ echo $varAA $ 这时应该用变量的原形:${var},即是加一个大括号来限定变量名称的范围,如下 PHP 代码: $ echo ${var}AA testAA $ 以这个特性,我们可以很方便地写一个批量改后缀名的程序,我把它命名为mymv,程序如下: PHP 代码: #
/bin/bash tail=$1 for filename in `ls` do mv $filename ${filename}
$tail done 程序需要提供一个后缀名,如c,表示改为后缀为c的C程序文件,看下面的测试: PHP 代码: $ ls a b c $ mymv c $ ls a
c $ 看样子程序运行的很好,但这是不完善的程序,有2个要注意的问题: A,目录下没有子目录,如果有一个目录,假设为dir,则也会被改为dir
c,这显然不是我们想要的,应该修正这个