shell笔记

(一)简介

1.Shell有两种执行命令的方式:

  • 交互式(Interactive):解释执行用户的命令,用户输入一条命令,Shell就解释执行一条;
  • 批处理(Batch):用户事先写一个Shell脚本(Script),其中有很多条命令,让Shell一次把这些命令执行完,而不必一条一条地敲命令;
2.一个简单的例子:
#!/bin/bash
echo "What is your name?"
read PERSON
echo "Hello, $PERSON"
(1)“#!” 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell;其中#表示注释符号;
(2)执行脚本:
chmod +x ./test.sh  #使脚本具有执行权限
./test.sh  #执行脚本
(二)语法
1.变量
(1)定义变量时,不需要指定类型;
(2)定义变量时,变量名不加美元符号($),使用变量时,需要加美元符号($);
(3)变量名和等号之间不能有空格;
(4)指定变量为只读时使用readonly关键字,删除变量使用关键字unset;
(5)shell变量包括局部变量与环境变量;
(6)变量名外面的花括号是可选的,有时候加不加都行,加花括号是为了帮助解释器识别变量的边界;
2.字符串
(1)单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
(2)单引号字串中不能出现单引号(对单引号使用转义符后也不行);
(3)双引号里可以有变量;
(4)双引号里可以出现转义字;
(5)获取字符串长度;
string="abcd"
echo ${#string} #输出 4
(6)提取子字符串:
string="alibaba is a great company"
echo ${string:1:4} #输出liba
3.数组
(1)定义数组
array_name=(value0 value1 value2 value3)
(2)读取数组
  ${array_name[index]}
(3)读取全部数据
${array_name[*]}
${array_name[@]}
(4)获取数组长度
length=${#array_name[@]}
4.语句
(1)if语句
if [ expression ]
then
   Statement(s) to be executed if expression is true
fi

if [ expression ]
then
   Statement(s) to be executed if expression is true
else
   Statement(s) to be executed if expression is not true
fi

(2)case语句
case 值 in
模式1)
    command1
    command2
    command3
    ;;
模式2)
    command1
    command2
    command3
    ;;
*)
    command1
    command2
    command3
    ;;
esac
(3)for语句
for 变量 in 列表
do
    command1
    command2
    ...
    commandN
done

(4)while语句
while command
do
   Statement(s) to be executed if command is true
done

(5)until语句
until command
do
   Statement(s) to be executed until command is true
done
(6)break与continue,用法与其他语言类似
5.函数
function function_name () {
    list of commands
    [ return value ]
}

(三)常见小知识点
1.shell中的算术运算常使用expr外部式:
PS:注意不是单引号''而是``;
2.set -x:放在shell脚本开头,表示每执行一条shell脚本中的指令,都会在terminal中打印出每条指令,方便调试;
3.$0 :表示shell脚本自身的文件名;
   $+数字: 一般是位置参数的用法;
   $+数字 用在函数里,那么表示获取函数的传入参数,$0表示函数名; 
   $#:表示添加到shell的参数个数;




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值