Linux基础知识笔记
1.case的命令格式
1 #!/bin/sh
2 echo "please input number 1 to 3"
3 read number
4 case $number in
5 1)
6 echo "you input 1"
7 ;;
8 2)
9 echo "you input 2"
10 ;;
11 3)
12 echo "you input 3"
13 ;;
14 *)
15 echo "error"
16 ;;
17 esac
esac是case的反写
2.if命令格式
1 #!/bin/sh
2 if [ "10" -lt "12" ]; then
3 echo "10<12"
4 else
5 echo "10>12"
6 fi
7
3.变量的含义
$# 是传给脚本的参数个数
$0 是脚本本身的名字
$1 是传递给该shell脚本的第一个参数
$2 是传递给该shell脚本的第二个参数
$@ 是传给脚本的所有参数的列表
$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
$$ 是脚本运行的当前进程ID号
$? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误
1 #!/bin/sh
2 echo "number:$#"
3 echo "name:$0"
4 echo "first :$1"
5 echo "second:$2"
6 echo "argume:$@"
7 echo "parm list:$*"
8 echo "process id:$$"
9 echo "exit stat: $?"
4.[]与[[]]
使用[[时有时会显示[[: not found 此时可能是bash的版本问题。
[[]]与[]相比支持正则
5.数组
1 #!/usr/bin/env bash
2 a=(1 2 3 4 5)
3 echo $a #第一个元素
4 echo ${a[0]} #第一个元素
5 echo ${a[*]} #所有元素
6 echo ${a[@]} #所有元素
7 #unset a #删除所有元素
8 #unset a[0] #删除第一个元素
9 echo ${a[@]:1:2} #${数组名[@或*]:起始位置:长度} 切片原先数组返回新的数组
10 echo ${a[@]/2/99} #将第2个元素替换为99
uname 显示系统信息 (缺省 -s 显示操作系统名称)
dirname 从文件名中剥离非目录的后缀
反引号的作用就是将反引号内的Linux命令先执行,然后将执行结果赋予变量
2>&1 把错误重定向到标准输出
标准的输入,输出和错误输出分别表示为STDIN,STDOUT,STDERR,也可以用0,1,2来表示
shift命令一次删除当前的参数使后一个餐宿前移
stty 改变并打印终端行设置
%~dp0代表的是.sh文件所在的文件目录