Mac平台下,Shell语言

一,编写第一个 Hello World 程序
1. ./ 是执行文件
2.echo 表示命令用于输出文本信息
3.变量名和等号之间不能有空格
4.要使用变量, 在变量前面加$
5.建议给所有变量加花括号,这是好的编程习惯
6.unset 指令删除变量.删除的变量不能再被使用

二.shell 脚本语法:
1.# 就是注释,没有多行注释,只有单行注释
2.只读变量:
+ 1.readonly 不允许修改
3.删除变量
+ 语法:unset 变量名
4.变量类型
+ 1.本地变量
+ 2.局部变量 local name='Andy'
+ 3.环境变量 export name="Dream"
+ 4.位置变量

   
+ 5.特殊变量 
    $(0)是脚本文件的名字
    $(?)->表示上一个命令状态返回值
    0:表示执行成功
    1:程序执行结果
    2:表示程序状态返回码(0-255)(1,2,127都是系统错误)
    
 + $(#) ->参数个数
 +  $(*)->参数列表
 +  $(@)->参数列表
 + $($)->后去当前 shell 进行 ID
 +  $(!)->执行上一个指令 PID


6.字符串语法

语法一:从左边开始检查,$(变量名#删除字符 正则)
+ 1.获取字符串长度
```
name="Andy"
echo ${#name} 
```
+ 2.截取字符串长度
从索引2开始往后截取3个
```
name="I have a Dream"
reault=${name:2:3}
echo ${result}
```
+ 3.截取字符串从某索引到最后
```
result=${name:5}
echo ${reault}
```
+ 4.删除字符串,#
```
name="I have a dream"
reault=$(name#I)
echo ${result}
```
+ 4.1.查找字符串,删除前面的所有的字符,包括它自己
```
name="I have a dream"
reault=$(name#*d)
echo $(reault)
得到: ve a Dream
```
+ 4.2.指定删除范围(第一个开始删除,删除到哪里)
```
name="I have a Dream"
result=${name#I*D}
echo ${result}
得到: ve a Dream
```
语法二:$(变量名##删除字符串 正则表达式)
+ 从右边开始删除
```
name="I have a Dream"
result=${name##*a}
echo ${result}
得到: I have a Dre
```
语法三:从右边开始删除
```
name="I have a Dream"
result=${name%a}
echo ${result}
得到: I have a Dre

```

(* 的位置在右边就是往右边删除,*在左边则是往左边删除)

总结:从左边删除到右边
.# ->表示查询方向从左到右
 .##->表示查询方向从右到左
从右边删除到左边
%->表示查询方向从右到左
%%->表示查询方向从左到右

你可能感兴趣的:(Shell)