Shell学习笔记

本文是一篇关于Shell脚本的学习笔记,介绍了Shell的基本概念、命令替换、条件测试、循环结构以及如何创建和执行Shell脚本。内容涵盖变量、算术表达式、if和case条件判断、while和for循环,并提供了示例代码。
摘要由CSDN通过智能技术生成

Shell学习笔记

Shell类似于windows下的批处理bat

Shell功能更加强大,而且已经变成了一门比较强大的编程语言

执行了Shell脚本,就执行了Shell中多个命令

可以做成分发脚本

创建和执行Shell脚本

使用echo命令显示信息

创建变量

使用本地和全局变量

计算表达式

使用if构造执行基于条件的Shell脚本

使用case构造执行基于条件的Shell脚本

Shell脚本可以起为任何名字,也可以没有任何后缀名,但是作为方便一般取名为.sh

可以使用任何编辑器编写Shell脚本

必须在Shell中执行

要注意增加可执行权限 chmod a+x

Shell脚本可以包含注解入口

Echo "Hello!"

# This is a comment line.

Echo "world!"

第二行是注解,将会被shell忽略

变量

创建变量可以在任何时间通过简单的赋值来创建

语法 变量名=变量值

Linux所有变量都被当做字符串

引用变量

Variable1=${variable2}

引用第二个值赋值给第一个variable

从键盘读入值给变量

read 变量名

把终端输入的内容存储到变量名中

本地和全局Shell变量

默认是局部变量,全局变量要使用exprot来特别指定

环境变量

HOME

指代用户HOME主目录

echo $HOME $变量引用一个变量)

PATH

包含一列用冒号定界的路径名字

搜索可执行文件的路径

PS1

设置shell的提示符

$ PS1="HELLO>" <Enter>

HELLO> New prompt

 

LOGNAME

获取用户登录名

$ echo "${LOGNAME}"

SHLVL

当前shell的工作level

SHELL

存储了用户的缺省默认shell

Env命令

查看所有环境变量和值

命令替换

echo "The date is `date` "   波浪号下的`

expr命令

用于求值算术表达式

expr 4 + 5 在屏幕上输出注意4空格空格 5

算术展开

$((...))中括一个表达式

小例子

echo "enter number1"

read number1

echo "enter number2"

read number2

sum=$((number1+number2))

echo "the number is $sum"

test 和 [] 命令,获取条件 []注意左右的空格

求值表达式,返回true (0)false

也可以用于字符串

以及文件测试

if提供循环和判定构造

exit 终止shell并返回到$提示符下

test数值测试

-eq 等于为真

-ne 不等于为真

-gt 大于

-ge 大于等于

-lt 小于

-le 小于等于

字符串测试

等于为真

!= 不相等为真

-z 长度为0为真

-n 长度不为0为真

文件测试

-e 文件存在

-r 存在可读

-w 存在可写

-x 存在可执行

-s 存在至少有一个字符

-d 存在且为目录

-f 存在为普通文件

-c 存在字符型特殊文件

-b 存在块特殊文件

-a 并且 -o 或者 

case...esac

类似switch

read choose

case $choose in

1) echo "wwwwwww";;

2) echo "eeeeeeeeeee";;

3) echo "wwwwrrrrrre";;

*) echo "nonono!";;

esac

while构造

while <条件>

do

<命令(s)>

done

until

for循环

for 变量名 in <list_of_valus>

do

...

done

breakcontinue

例子

codenum=1000

while [ $codenum -le 1002 ]

do 

 echo "Enter data!"

 echo -n "Employee Name:"

 read name 

 echo -n "Employee Address:"

 read address 

 echo -n "Employee Number:"

 read number

echo "$codenum : $name : $address :$number"

((codenum=$codenum+1))

done 

控制进程的执行

请求后台处理(&)

$ wc tempfile &    //计算tempfile中有多少个字符在后台进行处理

检查后台进程 ps

获得进程号

终止进程 kill +进程号

查看完成一个命令所花的时间

time 命令

$ time find /etc -name "passwd" 2>/dev/null

显示在/etc文件夹下查找名称为passwd的文件所用的时间,把错误信息重定向到

/dev/null上忽略掉

'|' 管道字符

把前面命令的输出作为后面命令的输入

ls -l | more

Demo

#The demo of study Shell!

echo "Please input you name!"

read name

echo "Your name is ${name}"

echo "Input the number!"

read number

if [ $number -ge 80 -a $number -lt 90 ]

then 

    echo "number is $number and is good!"

elif [ $number -gt 90 ]

then

    echo "$number is very good!"

else

    echo "$number is not very good!"

fi

要注意

引用变量加$

[  ]两侧的空格,

case $变量 in

1) ls ;;

2) ls -al;;

*) echo "input error!";;

esac

数学运算都要用双括号括起来

whiel [  ]

do

...

done

其它相关

PATH=$PATH:.

添加当前目录到系统路径下,不用再输入./ 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值