Shell编程

22 篇文章 0 订阅
11 篇文章 1 订阅

1.Shell编程

在这里插入图片描述

2.bash 和 sh的关系

				**sh 是bash的快捷方式**

3.创建一个 .sh文件

		权限不够怎么办
				chmod 777 a.sh修改权限即可

4shell变量

4.1 在shell脚本中, 定义变量时,变量名不加美元符号($)如:

	your_name="runoob.com"
	注意 : 变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。
	同时,变量名的命名须遵循如下规则:
	命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
	中间不能有空格,可以使用下划线(_)。
	不能使用标点符号。
	不能使用bash里的关键字(可用help命令查看保留关键字)。

4.2 使用一个定义过的变量,只要在变量名前面加美元符号即可

			变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界

4.3 删除变量

			使用 unset 命令可以删除变量	 变量被删除后不能再次使用。unset 命令不能删除只读变量。

4.4只读变量

			使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变

4.5字符串

			字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单					    	                               	   
            引号, 也可以用双引号,也可以不用引号。

4.6 提取字符串

			str="I am goot at $skill" echo ${str:2}   输出结果为: am goot at java echo ${str:2:2} # 输出结果为: am

4.7查找字符串

			str="I am goot at $skill" echo `expr index "$str" am` # 输出是: 3

4.8传递参数

在这里插入图片描述

在这里插入图片描述

4.9$* 与 $@ 区别:

								相同点:都是引用所有参数。
								不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数 1、2、3,,则 " * " 等价于 "1 
								2 3"(传递
								了一个参数),而 "@" 等价于 "1" "2" "3"(传递了三个参数)。

4.10 Shell算术运算符

			表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2。
			完整的表达式要被 ` 包含,注意不是单引号,在 Esc 键下边。
			下表列出了常用的算术运算符,假定变量 a 为 10,变量 b 为 20:

在这里插入图片描述

4.11 If 结构

		 if condition1; then 
		 command1
		 elif condition2; then 
		 command2
		 else
		 commandN
		 fi

4.12关系运算符

-eq 检测两个数是否相等,相等返回 true。 equal [ $a -eq $b ]   返回   false。

-ne 检测两个数是否不相等,不相等返回 true。 not equal [ $a -ne $b ] 返回 true。
-gt 检测左边的数是否大于右边的,如果是,则返回true。 greater than [ $a -gt $b ] 返回false。
-lt 检测左边的数是否小于右边的,如果是,则返回true。less than [ $a -lt $b ] 返回true。
-ge检测左边的数是否大于等于右边的,如果是,则返回 true。Greater than orequal to[ $a -ge $b ] 返
回false。
-le 检测左边的数是否小于等于右边的,如果是,则返回 true。Less than or equalto[ $a -le $b ] 返回
true。

4.13 for循环

			for variable in (list);
			 do 
			 	command command ...
			  done
				例子:遍历1-100的奇数
				for aa in{1..100..2}
				do
					echo "$aa"
				done;

4.14 while

				while condition ; do
				command
				done;
			例子:计算 1~100 的和
			sum=0
			 i=1 
			 while [ \$i -le 100 ]; do
			  sum=\$[ sum + i] i=\$[ i + 1 ] 
			  done 
			  echo \$sum

4.15 case 值 in

		case 值 in
		模式1) command1 command2 ... commandN ;;
		模式2) command1 command2 ... commandN ;;
		 esac

4.16 continent和break

		continue :跳出本次循环
		break:结束整个循环

4.17 传递参数给函数

在这里插入图片描述

4.18数组

①#!/bin/bash

my_array=(A B "C" D)
 我们也可以使用下标来定义数组:
  array_name[0]=value0
  array_name[1]=value1
  array_name[2]=value2

②读取数组所有元素的方式:${array_name[index]}

		例子:
		#!/bin/bash 
		my_array=(A B "C" D) 
		echo "第一个元素为: ${my_array[0]}" 
		echo "第二个元素为: ${my_array[1]}"
		echo "第三个元素为: ${my_array[2]}" 
		echo "第四个元素为: ${my_array[3]}"

③获取数组长度的方式

		  echo "数组元素个数为: ${#数组名[*]}" 
		  echo "数组元素个数为: ${#数组名[@]}"

④遍历数组

1. #!/bin/bash
		  my_arr=(AA BB CC) for var in ${my_arr[*]}
		   do
		   echo $var 
		   done
2.my_arr=(AA BB CC)
		   my_arr_num=\${#my_arr[*]}
		   for((i=0;i<my_arr_num;i++))
		    do
		    echo "-----------------------------" echo \${my_arr[\$i]}
		     done

4.19 加载其他配置类的变量

	  #!/bin/bash
	 source ./test1.sh test1.sh
	  for var in ${my_arr[*]} doecho $var done
  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

她與風皆過客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值