初始shell

什么是shell

在Linux内核与用户之间的解释器程序
通常指 /bin/bash
负责向内核翻译及传达用户/程序指令
相当于操作系统的“外壳”

shell使用方式

交互式 —— 命令行

人工干预、智能化程度高
逐条解释执行、效率低

非交互式 —— 脚本

需要提前设计、智能化难度大
批量执行、效率高
方便在后台静悄悄地运行

shell脚本:提前写好可执行的语句,可以完成特定任务的文件按顺序、批量化执行

shell脚本编写规范

1. 声明解释器

#!/bin/bash

2. 编写注释

#可以描述脚本功能、变量作用等信息

3. 执行指令

ls
cd
...
...

脚本的执行方式

1. 为脚本添加x权限,使用相对或者绝对路径执行

chmod u+x test01.sh
./test01.sh   或者   /opt/test01.sh
用户(root)---bash---bash---echo 

2. 使用解释器程序执行脚本,无需x权限

bash test01.sh
用户(root)---bash ---bash---echo   会开启子进程

3. 使用source 或者. 执行脚本,无需x权限

source test01.sh
用户(root)---bash---echo       不会开启子进程

shell变量

变量: 使用固定的名称存放可能发生变化的值,可以提高脚本的灵活度、适应力
常量: 固定不变的内容

变量的种类

1. 自定义变量

特点: 名称可以用数字、字母、下划线,不能以数字
规则: 开头,不能使用特殊符号,等号两边不能有空格
格式: shell变量名称=值

a=10    //创建变量(对变量赋值),名字是a,值是10
a=30    //再次赋值,之前的会被覆盖
echo $a  //调用变量时使用$符号
unset  a  //取消变量的定义
a=    //将变量a赋值为空,效果同上
echo ${a}RMB  //变量名容易与后续字符发生混淆时使用大括号隔开

2. 环境变量

特点: 由系统提前定义好,使用时直接调用
USER当前用户名
UID当前用户的id号
HOME当前用户家目录
HOSTNAME主机名
SHELL当前用户的解释器
PWD当前位置
PATH存储命令的路径
PS1一级提示符
PS2二级提示符

3. 位置变量与预定义变量

$1执行脚本时后面第1个位置参数
$2执行脚本时后面第2个位置参数
$3执行脚本时后面第3个位置参数
$*执行脚本时后面所有位置参数
$#执行脚本时后面位置参数的个数
$$当前程序的进程号(该号码是随机的)
$?判断上一条指令是否执行成功,0是成功,非0是失败

变量的扩展知识

1. 引号和反撇号

" " 双引号 界定范围

a=10
echo "$a"    //正常调用变量

' ' 单引号 界定范围 屏蔽特殊符号的功能

echo '$a'     //无法调用变量,$被屏蔽

反撇号 获取命令的执行结果,还可以使用$( )实现相同效果

a=date     //仅仅将四个字母赋值给a
a=`date`    //将date执行结果赋值给a
a=$(date)   //效果同上

2. 使用read指令

#!/bin/bash
read -p "请输入用户名"  u   //-p是可以定义提示信息,u相当于自
定义变量名称,可以存储用户看到提示信息后输入的字符
useradd $u
read -p "请输入密码"  n
echo "$n" | passwd --stdin $u

stty -echo 屏蔽回显
stty echo 恢复回显
改良脚本

#!/bin/bash
read  -p  "请输入用户名"  u
useradd  $u
stty  -echo
read  -p  "请输入密码"  n
stty  echo
echo  "$n" | passwd  --stdin  $u

数值运算

加、减、乘、除、求模(取余数)

1. 使用expr命令,可以运算并输出结果

expr  1  +  1     //加法,运算符号两边要有空格
expr  2 – 1     //减法
expr  2  '*'  2  //乘法
expr  2  \*  2   // \是转义符号,可以屏蔽身后一个特殊符号的功能
expr  4  /  2   //除法
expr  5  %  2   //取余数
a=10
b=20
expr $a + $b
expr $a + 100
expr $a + $a

[ ] 运算 使用(( )) 可以实现相同效果

echo $[2*2]
echo $[2-2]
echo $[2/2]
echo $[2%2]
a=10
b=20
expr $a + $b
echo $[a+b]

使用let命令,不输出结果,专用于变量的创建或者变量的自增减

let a=1+1   //创建变量
变量的自增减:
常规写法       主流写法
let a=a+1       let a++     变量a加1
let a=a-1         let a--      变量a减1
let a=a+10      let a+=10   变量a加10
let a=a-10      let a-=10    变量a减10
let a=a*2       let a*=2     变量a乘以2
let a=a/2       let a/=2    变量a除以2
let a=a%3      let a%=3    变量a除以3取余数

使用bc,可以进行小数计算

echo "1.1+1" | bc
echo "10/3" | bc
echo "scale=2;10/3" | bc      //scale可以定义结果是小数点后多少位
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,142评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,298评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,068评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,081评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,099评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,071评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,990评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,832评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,274评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,488评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,649评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,378评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,979评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,625评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,643评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,545评论 2 352

推荐阅读更多精彩内容