Linux基础知识笔记

时间:2021-07-20 18:16:04

1.case的命令格式   

 #!/bin/sh
echo "please input number 1 to 3"
read number
case $number in
)
echo "you input 1"
;;
)
echo "you input 2"
;;
)
echo "you input 3"
;;
*)
echo "error"
;;
esac

esac是case的反写

2.if命令格式

 #!/bin/sh
if [ "" -lt "" ]; then
echo "10<12"
else
echo "10>12"
fi

3.变量的含义    

   $# 是传给脚本的参数个数
   $0 是脚本本身的名字
   $1 是传递给该shell脚本的第一个参数
   $2 是传递给该shell脚本的第二个参数
   $@ 是传给脚本的所有参数的列表
   $* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
   $$ 是脚本运行的当前进程ID号
   $? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误
 #!/bin/sh
echo "number:$#"
echo "name:$0"
echo "first :$1"
echo "second:$2"
echo "argume:$@"
echo "parm list:$*"
echo "process id:$$"
echo "exit stat: $?"

4.[]与[[]]

使用[[时有时会显示[[: not found 此时可能是bash的版本问题。

[[]]与[]相比支持正则

5.数组   

 #!/usr/bin/env bash
a=( )
echo $a #第一个元素
echo ${a[]} #第一个元素
echo ${a[*]} #所有元素
echo ${a[@]} #所有元素
#unset a #删除所有元素
#unset a[] #删除第一个元素
echo ${a[@]::} #${数组名[@或*]:起始位置:长度} 切片原先数组返回新的数组
echo ${a[@]//} #将第2个元素替换为99

uname  显示系统信息 (缺省 -s 显示操作系统名称)

dirname 从文件名中剥离非目录的后缀

反引号的作用就是将反引号内的Linux命令先执行,然后将执行结果赋予变量

2>&1 把错误重定向到标准输出

标准的输入,输出和错误输出分别表示为STDIN,STDOUT,STDERR,也可以用0,1,2来表示

shift命令一次删除当前的参数使后一个餐宿前移

stty  改变并打印终端行设置

%~dp0代表的是.sh文件所在的文件目录