Linux Shell

Linux Shell

Shell 是Linux系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。Shell本身也是一种高级程序设计语言,提供了变量,函数,条件判断,循环等开发语言的功能。

Shell与用户交互的模式

  • 命令行交互环境下的Shell
  • 执行Shell脚本

Shell基本知识

Shell解释器

使用解释器的语法: #!解释器(对于程序员来说,/bin/bash/bin/sh常用)

Shell的变量类型

  1. 环境变量:Shell环境下已经存在的一些系统变量,例如:PWDUIDPATH
  2. 自定义变量变量名=变量值
    #!/bin/bash
    echo "Hello,Shell,欢迎学习Shell,您现在的工作目录是:"
    echo "当前的工作目录是:$PWD"
    
  3. 预定义变量
    • $0 当前执行的shell脚本的程序名
    • $1 $2 .... $n 代表第一个、第二个…第n个位置参数的值
    • $# 传递的位置参数的个数
    • $* 所有位置参数的值
    • $? 返回上一条命令是否执行成功,成功为0,失败非0。

Shell脚本执行方式

  • 方式一:直接通过脚本文件的位置执行 (必须添加x执行权限)
  • 方式二:sh 脚本文件位置
  • 方式三:source 脚本文件位置

Shell的程序流程控制

if条件判断语法:

#!/bin/bash
echo "执行当前脚本的程序名是$0"
echo "当前脚本接收的位置参数的个数是:$#"
echo "第1个位置参数的值是$1,第5个位置参数的值是$5"
echo "所有位置参数的值是:$*"
echo "上一条命令执行成功了吗?$?"
if [ 判断条件表达式 ]
then
  测试通过执行此处脚本
else
  测试未通过,在此执行脚本
fi

注意:文件判断的常用选项:

  • -d 是否为目录
  • -f 是否为文件
  • -e 是否存在

例一:

#!/bin/bash
echo "请输入要判断的文件"
read name  # 接收键盘输入,并将输入的结果保存在name变量中
if [ -d "$name" ] # 判断是否为目录
then
  echo "this is a directory!"
else
  echo "sorry,this isn't directory!"
fi

for循环语句

for 循环变量 in 表达式
do
  循环内容
done

while循环语句

read -p "请输入文件名:" name
if [ -e "$name" ]
then
  rm -f "$name"
  echo "删除成功!"
else
  touch "$name"
  echo "创建成功"
fi

注意事项

  • Shell中的反撇号`,相当于$()命令替换
  • expr 是expression表达式的缩写,它是一个用于执行运算或字符串操作的命令,例如:
    expr 30 / 3
    expr length "Hello World"
    

循环示例

#!/bin/bash
num=1
result=0
while [ $num -le 100 ]
do
  result=`expr $result + $num`
  num=`expr $num + 1`
done
echo $result >> sum.txt
echo "计算完成"
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值