shell脚本语法(上)

1.概念:Shell 脚本(shell script),是一种为 shell 编写的脚本程序。

所谓脚本,在最简单的情况下,不过是存储在一个文件里的系统命令列表。

 

2.bash脚本头部: #!/bin/bash

echo:用于向窗口输出文本;

第一个脚本:

#!/bin/bash

echo "hello word"

运行脚本:

1.作为可执行代码运行:

保存为.sh文件

cd 相应目录/直接将sh文件拖到终端

chmod +x ./test.sh (使脚本具有执行权限)

./test.sh (执行脚本)

!!!如果报错Permission denied,代表没有权限;

在设置权限命令时如果报错 No such file or directory,是因为路径找不到,将./test.sh改为完整的路径,如/Users/myshell/test.sh 这样;或者chmod 777 /Users/myshell/test.sh

执行脚本也改为完整路径;

便可以看到终端输出hello word

 

2.作为解释器参数:

/bin/sh test.sh

同样如果是报错 No such file or directory也是需要将路径补全

3. Shell变量

eg: file_name="runoob.com"

!!!变量名与=之间不能存在空格

命名规则:只能使用英文字母,数字和下划线,首个字符不能以数字开头;

中间不能有空格,可以使用下划线(_);

不能使用标点符号以及bash关键字;

使用变量:${变量名} {}可选,加{}是为了帮助解释器识别变量的边界;但最好加上{}

修改一下脚本:

#!/bin/bash

first_word="hello word"

echo ${first_word}

echo $first_word

运行结果一样;

 

只读变量:readonly 命令定义只读变量;

readonly first_word

删除变量:unset命令定义删除变量,删除后不能再次使用 !!!不能删除只读变量

unset first_word

 

4.Shell字符串 单引号/双引号都行 但是!!!双引号中可以使用转义字符和变量,单引号不行

#!/bin/bash

first_word="hello word"

str='this is a string'

str2="this is a \"$first_word\" !"

echo ${first_word}

echo $str

echo $str2

字符串拼接:

your_name="John"

str="hello,"$your_name" !"

str_1="hello,${your_name} !"

echo $str $str_1

输出结果hello,John ! hello,John !

获取字符串长度:在str前添加#

echo ${#str}

提取子字符串:

echo ${str:1:4} #指从第二个字符开始截取4个字符ello

查找字符串:

echo `expr index "str" io` . #查找字符 i 或 o 的位置(哪个字母先出现就计算哪个)

 

5.Shell数组 支持一维数组

定义数组:数组名=(值1 值2 ....值n)

读取数组:${数组名[下标]}

用@符号可以获取数组中所有元素,${数组名[@]}

获取数组长度:length=${#array_name[@]} 或 length=${#array_name[*]}

取数组单个元素的长度:lengthn=${#array_name[n]}

array_name=(value1 value2 value3 value4)

value2=${array_name[2]}

length=${#array_name[@]}

length3=${#array_name[3]}

echo ${value2} #value3

echo ${length} #4

echo ${length3} #6

6.Shell注释  #开头相当于//

多行注释:

:<<EOF

注释内容... 注释内容... 注释内容... EOF

或者

:<<! 注释内容... 注释内容... 注释内容... !

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值