SHELL编程入门

SHELL编程入门

Linux系统分层如下:用户层、应用层、Shell层、内核层、硬件层

Shell是一个用c语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言

Shell是指一种应用程序,这个程序提供了一个界面,用户通过这个界面访问操作系统的内核服务

Shell编程基础

我们可以使用任意一种文本编辑器编写Shell脚本(vi、gedit等),但是它必须以以下内容开始:

#!/bin/bash(推荐使用)

#!是特殊符号,用来表示shell脚本程序

变量赋值和引用

在Shell编程中,使用变量无需事先声明,同时变量的命令规则如下:

  • 首个字符必须为字母
  • 中间不能有空格,但是可以用‘_’
  • 不能使用标点
  • 不能使用bash关键字

变量赋值语法:变量名=值(不能有空格)

变量的引用:’$’,示例如下:

#!/bin/bash
a="Hello World"
echo "a is:" $a

有时变量名和文本会混淆,可以使用{变量名},以区别变量和文本

num=1
echo "This is the $numnd"	#num nd两个会出现混淆
#应更改为
echo "This is the ${num}nd"

shell默认赋值类型为字符串

Shell流程控制

if语句

“if”表达式如果条件为真,就会执行then后的部分:

if ...;then
...
elif...;then
...
else
...
fi

如果进行条件判断,需要使用"[ ]"(if后有空格,且判断语句也需要带上空格)

#!/bin/bash
if [ ${SHELL} = "/bin/bash" ]; then
   echo "OK"
fi

case语句

case表达式可以用来匹配一个给定的字符串,而不是数字

case ... in
...)
do something here ;;
...)
do something here ;;
esac

程序实例如下:

#!/bin/bash
case $1 in
"1")
	echo "This is 1" ;;
"2")
	echo "This is 2" ;;
esac

*注意: 1 是 特 殊 符 号 , 代 表 传 递 给 该 脚 本 的 第 一 个 参 数 值 , 类 似 于 c 中 的 a r g v [ 1 ] , 而 1是特殊符号,代表传递给该脚本的第一个参数值,类似于c中的argv[1],而 1cargv[1]表示所有参数

select语句

select表达式是bash中的一种拓展应用,擅长于交互式场景,用户可以在一组值中进行选择

select var in ...;do
break;
done
...now $var can be used...

select实例如下:

#!/bin/bash
echo "What's your select?"
select var in "A.---" "B.----" "C.----" "D.----";do
  break;
done
echo "Your select is ${var}"

注意:每个选项之间有空格

while/for循环

while循环

while...;do
	...
done

for循环

for var in ...;do
	...
done

for循环实例:

#!/bin/bash

for var in a b c ; do
	echo "$var"
done

脚本运行将会输出a、b、c

Shell中的特殊符号
  • “”可以防止变量名代替字符串,‘’则更加严格

    echo $SHELL
    echo "$SHELL"
    echo '$SHELL'
    
    #程序运行结果如下:
    /bin/bash
    /bin/bash
    $SHELL
    
  • Here Document

    当需要将几行文本信息传递给一个命令时,就可以使用Here Document

    command << text
    	****
    	****
    text(顶格写)
    

    例如:

    #!/bin/bash
    
    cat << text
    1111111
    2222222
    3333333
    text
    

    脚本运行之后将输出两个text中间的内容

Shell函数

函数定义

function function_name()
{
    ...
}

#函数调用
function_name

函数使用实例如下:

#!/bin/bash

function hello()
{
		echo "Hello World"
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值