- 来源于网上的《Shell十三问-ChinaUnix精华贴整理》
file=/dir1/dir2/dir3/my.file.txt
${#file} 可得到 27 ,因为 /dir1/dir2/dir3/my.file.txt 刚好是 27 个字节
${file##*/} :拿掉最后一条 / 及其左边的字符串:my.file.txt
${file#*.} :拿掉第一个 . 及其左边的字符串:file.txt
${file##*.} :拿掉最后一个 . 及其左边的字符串:txt
${file%/*} :拿掉最后条 / 及其右边的字符串:/dir1/dir2/dir3
${file%%/*} :拿掉第一条 / 及其右边的字符串:(空值)
${file%.*} :拿掉最后一个 . 及其右边的字符串:/dir1/dir2/dir3/my.file
${file%%.*} :拿掉第一个 . 及其右边的字符串:/dir1/dir2/dir3/my
${file#*/} :拿掉第一条 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt
${file:0:5} :提取最左边的 5 个字节:/dir1
${file:5:5} :提取第 5 个字节右边的连续 5 个字节:/dir2
${file/dir/path} :将第一个 dir 提换为 path:/path1/dir2/dir3/my.file.txt
${file//dir/path} :将全部 dir 提换为 path:/path1/path2/path3/my.file.txt
file 没有设定,则使用 my.file.txt 作传回值。(空值及非空值时不作处理)
file 没有设定或为空值,则使用 my.file.txt 作传回值。 (非空值时不作处理)
file 设为空值或非空值,均使用 my.file.txt 作传回值。(没设定时不作处理)
file 为非空值,则使用 my.file.txt 作传回值。 (没设定及空值时不作处理)
file 没设定,则使用 my.file.txt 作传回值,同时将 $file 赋值为my.file.txt 。 (空值及非空值时不作处理)
file 没设定或为空值,则使用 my.file.txt 作传回值,同时将 $file赋值为 my.file.txt 。 (非空值时不作处理)
file 没设定,则将 my.file.txt 输出至 STDERR。 (空值及非空值时不作处理)
file 没设定或为空值,则将 my.file.txt 输出至 STDERR。 (非空值时不作处理)
{A[*]} 可得到 a b c def (全部组数)
{A[1]} 则为第二个组数...
{#A[*]} 可得到 4 (全部组数数量)
{#A[3]} 可得到 3 (第四个组数(def)的长度)
A[3]=xyz 则是将第四个组数重新定义为 xyz
- $(( )) 的用途:整数运算
+ - * / :分别为 "加、减、乘、除"。
% :余数运算
& | ^ !:分别为 "AND、OR、XOR、NOT" 运算
$ a=5; b=7; c=2
$ echo $(( a+b*c ))
19
网友评论