shell编程入门

shell编程是一种操作系统的脚本编程,写的文件是一个.sh结尾的文件,所有的文件编写完了也是要东西来翻译的,shell也不例外,linux系统自带了很多程序来翻译执行我们写的shell脚本文件,比如说:
/bin/sh程序,就是一个

常见的有:Bourne Shell(/usr/bin/sh或/bin/sh)、Bourne Again Shell(/bin/bash)、C Shell(/usr/bin/csh)、K Shell(/usr/bin/ksh)、Shell for Root(/sbin/sh),等等。不同的Shell语言的语法有所不同,所以不能交换使用。每种Shell都有其特色之处,基本上,掌握其中任何一种 就足够了。在本文中,我们关注的重点是Bash

shell的理解

简单点理解,就是系统跟计算机硬件交互时使用的中间介质,它只是系统的一个工具。实际上,在shell和计算机硬件之间还有一层东西那就是系统内核了。打个比方,如果把计算机硬件比作一个人的躯体,而系统内核则是人的大脑,至于shell,把它比作人的五官似乎更加贴切些。

我的第一个shell

cd /home/hugh
在hugh文件夹下新建一个myShell文件夹 mkdir myShell
在这里插入图片描述
在myShell文件夹下新建一个脚本文件 first_shell.sh
在这里插入图片描述
vim first_shell进入编写shell脚本
在这里插入图片描述
利用vi等文本编辑器编写Shell脚本的格式是固定的,如下:

#!/bin/sh

#comments

Your commands go here

首行中的符号#!告诉系统其后路径所指定的程序即是解释此脚本文件的Shell程 序。如果首行没有这句话,在执行脚本文件的时候,将会出现错误。后续的部分就是主程序,Shell脚本像高级语言一样,也有变量赋值,也有控制语句。除第 一行外,以#开头的行就是注释行,直到此行的结束。如果一行未完成,可以在行尾加上",这个符号表明下一行与此行会合并为同一行。

执行chmod first_shell.sh 将脚本文件属性赋值为可执行的
编辑完毕,将脚本存盘为filename.sh,文件名后缀sh表明这是一个Bash脚本文件。执行脚本的时候,要先将脚本文件的属性改为可执行的
最后
执行脚本的方法是:

./filename.sh
注意 chmod first_shell.sh 会使得执行权限不够报错,要改为 chmod 777 first_shell才可执行
在这里插入图片描述

Shell其实就是一个解释执行命令的程序,所谓shell编程其实就是用一定的语法将各种基本的命令组合起来,让shell程序去解释执行。

同传统的编程语言一样,shell提供了很多特性,这些特性可以使你的shell script编程更为有用,如:数据变量、参数传递、判断、流程控制、数据输入和输出,子程序及以中断处理等。

各种语法参考参考入门教程

编程中的空格问题


1.赋值不能有空格
STR=“Hello World!”

echo $STR

HOME="/home" //注意赋值不要有空格

a=123

HOME_LIST=$(ls /home) //把命令的执行结果赋值给变量

ehco H O M E / / HOME // HOME// 符号是获得变量HOME的值

a=a+1

2…if语句中的 if ,elif关键字与中括号[ ],以及中括号里面的参数 三者之间都有空格
if 语句示例:

if [ “22” -lt “33” ] then //注意空格

echo “22 less than 33”

else

echo “no”

fi //if语句的结束

我的第一个shell程序

#!/bin/sh
#comment
echo "hello world"
echo "enter a number"
read param
case $param in
1)
echo " your number is $param"
;;
2)
echo "your number is $param"
;;
[3-9])
echo "your number is $param"
;;
*)# 
echo "others"
esac


a=2
b=3
c=[ "$a"="$b" ]
echo $c
echo [ a -le b ]

hugh_list=$(ls /home/hugh)
echo $hugh_list


echo "enter y or n"
read input
if [ $input = y ]
then
echo " is y"
elif [ $input = n ]
then
echo "is n"

"first_shell.sh" 42L, 453C    1,1   
else
echo "input wrong"
fi
function function01(){                //函数function 关键字可以不要,直接写函数名
abc=123
echo $abc
}
echo "call the function "
function01                             //调用函数不能加()括号
#echo $abc           //调用不了函数的局部变量
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值