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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容