linux shell初识

脚本编程shell

shell 一个能编写代码的⽂ 本编辑器和⼀个能解释执⾏的脚本解释器
Linux 的 Shell 种类众多,常⻅的有:

  • 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)

运行流程

chmod +x ./test.sh
sh ./test.sh
./test.sh

常⽤的脚本关键字

  1. echo:打印⽂字到屏幕
  2. exec:执⾏另⼀个 Shell 脚本
  3. read:读标准输⼊
  4. expr:对整数型变量进⾏算术运算
  5. test:⽤于测试变量是否相等、 是否为空、⽂件类型等
  6. exit:退出

脚本例子流程

>su - hr
>vi test.sh         //脚本文件后缀 .sh
#!/bin/bash         //    #!是⼀个约定的标记,它告诉系统这个脚本需要什么解释器来执⾏,即使⽤哪⼀种 Shell
echo “hello world !”
>chmod +x test.sh
>sh ./test.sh
>hello world !

调用变量

$变量申明符号
变量类型

  1. ⽤户⾃定义变量
>vi custom_r.sh
#!/bin/bash
name=dd
echo $name
readonly name
name=xx
>echo $name
  1. 预定义变量
  • $0 :脚本⽂件名
  • $1-9 :第 1-9 个命令⾏参数名
  • $# :命令⾏参数个数
  • $@ :所有命令⾏参数
  • $* :所有命令⾏参数
  • $? :前⼀个命令的退出状态,可⽤于获取函数返回值
  • $$ :执⾏的进程 ID
>vi predef.sh
#!/bin/bash
echo "print $"
echo "\$0 = $0"
echo "\$1 = $1"
echo "\$2 = $2"
echo "\$# = $#"
echo "\$@ = $@"
echo "\$* = $*"
echo "\$$ = $$"
echo "\$? = $?"
>chmod +x predef.sh
>./predef.sh 1 2 3 4
>./predef.sh a b c d
  1. 环境变量
    环境变量默认就存在,常⽤的有下⾯这⼏
    个:
  • HOME:⽤户主⽬录
  • PATH:系统环境变量 PATH
  • TERM:当前终端
  • UID:当前⽤户 ID
  • PWD:当前⼯作⽬录,绝对路径
>vi test_env.sh
#!/bin/bash
echo "print env"
echo $HOME
echo $PATH
echo $TERM
echo $PWD
echo $UID
>chmod +x test_env.sh
>sh test_env.sh

unset 删除变量
readonly 标记为只读变量
export 指定全局

运算符号

+ - * / 分别为 加、减、乘、除

% 余数运算
$ | ! 分别为”AND、OR、NO

整数比较
-eq 等于,如:if [ “ a " − e q " a" -eq " a"eq"b” ]
-ne 不等于,如:if [ “ a " − n e " a" -ne " a"ne"b” ]
-gt ⼤于,如:if [ “ a " − g t " a" -gt " a"gt"b” ]
-ge ⼤于等于,如:if [ “ a " − g e " a" -ge " a"ge"b” ]
-lt ⼩于,如:if [ “ a " − l t " a" -lt " a"lt"b” ]
-le ⼩于等于,如:if [ “ a " − l e " a" -le " a"le"b” ]
< ⼩于(需要双括号),如:((“ a &quot; &lt; &quot; a&quot; &lt; &quot; a"<"b”))
<= ⼩于等于(需要双括号),如:((“ a &quot; &lt; = &quot; a&quot; &lt;= &quot; a"<="b”))
> ⼤于(需要双括号),如:((“ a &quot; &gt; &quot; a&quot; &gt; &quot; a">"b”))
>= ⼤于等于(需要双括号),如:((" a &quot; &gt; = &quot; a&quot; &gt;= &quot; a">="

字符串比较
= 等于,如:if [ “ a &quot; = &quot; a&quot; = &quot; a"="b” ]
== 等于,如:if [ “ a &quot; = = &quot; a&quot; == &quot; a"=="b” ],与=等价

常见运算

  1. m=$[ m + 1 ]
  2. m=expr $m + 1 # ⽤ ` 字符包起来 expr 全局变量
  3. let m=m+1
  4. m=$(( m + 1 ))
vi add_one.sh
#!/bin/bash
m=1
m=$[ m + 1 ]
echo $m
m=`expr $m + 1`
echo $m
let m=m+1
echo $m
m=$(( m + 1 ))
echo $m

脚本例子

#!/bin/bash
a=10
b=20
if [ $a == $b ] 
 then
  echo "a=b"
else
  echo "a!=b"
fi


read -t 30 -p "input :" x
if [ $x == 5 ]
  then
  echo "x is 5"
else
  echo "x is not 5"
fi

数组

所谓数组,是有序的元素序列。
[name] 若将有限个类型相同的变量的集合命名,那么这个名称为数组名。
组成数组的各个变量称为数组的分量,也称为数组的元素

x=1
echo $x
days=([0]=Sun [1]=Mon [2]=Tue [3]=Wed [4]=Thu  // 数组名字=([定义]=元素)
[5]=Fri [6]=Sat)
echo ${days[$x]}
echo ${days[4]}
echo ${days[5]}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值