shell初步

0.前提

命令适用于bash
列出环境变量:env
显示信息:echo
向文本中追加信息:echo “内容” >> file
统一文本格式:set ff=unix
添加执行权限:chmod +x file
执行脚本:(1)./file (2)bash file
使用当前shell执行脚本:(3). file (4) source file
文件开头#!/bin/bash

1.自定义变量

定义变量:变量名=变量值
引用变量:$变量名
显示变量:echo $变量名
清除变量:unset 变量名
从键盘读入:read 变量名
定义只读变量:readonly 变量名=变量值
定义环境变量:export 变量名=变量值

2.环境变量

HOME:用于保存注册目录的完整路径名
PATH:用于保存用冒号分隔的目录路径名;shell将按照PATH变量中给出的顺序搜索这些目录,找到的第一个与命令名称一致的可执行文件执行
HOSTNAME:主机名
SHELL:默认的shell命令解析器
LOGNAME:此变量保存登录名
PWD:当前工作目录的绝对路径名

3.预设变量

$#:传给shell脚本参数的数量
$*:传给shell脚本参数的内容
$1 $2 $3:运行脚本时传递其给的参数,用空格隔开
$?:命令执行后返回的状态
" $?":用于检查上一个命令执行是否正确(在Linux中,命令退出状态为0表示该命令正确执行,任何非0值表示命令出错)
$0:当前执行的进程名
$ $:当前进程的进程号(中间无空格,下同)
" $ $":变量最常见的用途是用作临时文件的名字以保证临时文件不会重复

4.脚本变量的特殊用法

“”(双引号):包含的变量会被解释
‘’(单引号):包含的变量会当做字符串解释
``(反引号):反引号中的内容作为系统命令,并执行其内容,可以替换输出为一个变量
\ 转义字符:
\n \t \r \a 等echo命令需加-e转义
( 命令序列 ):由子shell来完成,不影响当前shell中的变量
{ 命令序列 }:在当前shell中执行,会影响当前变量

5.条件测试语句

test命令:用于测试字符串、文件状态和文字
test命令格式:test condition 或[ condition ]
shell脚本中的条件测试如下:
文件测试、字符串测试、数字测试、复合测试

文件测试

test file_operator file
[ file_operator file ]
其中file_operator可以是:
-e 是否存在 -d 是目录 -f 是文件
-r 可读 -w 可写 -x 可执行
-L 符号连接 -c 是否字符设备
-b 是否块设备 -s 文件非空

字符串测试

test str_operator “str”
test “str1” str_operator “str2”
[ str_operator “str” ]
[ “str1” str_operator “str2” ]
其中str_operator可以是:
= 两个字符串相等 != 两个字符串不相等
-z 空串 -n 非空串

数字测试

test num1 num_operator num2
[ num1 num_opertaor num2 ]
num_operator可以是:
-eq 数值相等
-ne 数值不相等
-gt 数1大于数2
-ge 数1大于等于数2
-le 数1小于等于数2
-lt 数1小于数2

复合测试

命令行执行控制:
&&: 并
||: 或

多重条件判定

-a 两种状况同时成立
test file_operator file -a file_operator file
-o 两种状况任何一个成立
test file_operator file -o file_operator file
! 相反状态
test !file_operator file

6.控制语句

if控制语句

格式1:
if [条件1];then
执行第一段程序
else
执行第二段程序
fi
格式2:
if [条件1 ];then
执行第一段程序
elif[条件2];then
执行第二段程序
else
执行第三段程序
fi

case控制语句

case $变量名称 in
“第一个变量内容”)
程序段1
;;
“第二个变量内容”)
程序段2
;;
*)
其他程序段
exit 1
esac

for控制语句

格式1:
for (( 初始值; 限制值; 执行步阶 ))
do
程序段
done

declare是bash的一个内建命令,可以用来声明shell变量、设置变量的属性
declare可以写作typeset
declare -i s 代表强制把s变量当做int型参数运算
格式2:
for var in con1 con2 con3 …
do
程序段
done

while控制语句

while [condition]
do
程序段
done
当condition成立时进入循环,直到condition不成立时退出循环

until控制语句

until [condition]
do
程序段
done
与while相反

7.函数

格式1:
函数名(){
命令…
}
格式2:
function 函数名(){
命令…
}
调用函数的格式为:
函数名 param1 param2
使用参数同在一般脚本中使用特殊变量
$1 $2 … $9 一样
函数可以使用return提前结束并带回返回值:
return 从函数中返回,用最后状态命令决定返回值
return 1 有错误返回
return 0 无错误返回

调用其他脚本的函数
source “file”

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值