shell笔记本xmind导出

142 阅读1分钟

shell

Shell编程_教程网站


misc

  • 调试 sh -x xxxsh
  • 前后要有空格
  • Str1 =~ str2 包含

echo “`ls -a`” #返回ls的输出 要使用命令替换

#comments


执行

Date

D1=$(date)

  • 以上两条都执行了date指令 ,不过后一条把输出返回了

lock=$(./pcieserver -I 130 -d 1)


引用

  • 单引号
  • 双引号
  • 反斜杠\

命令替换

  • 反引号
  • $()

预定义变量/特殊变量

$#

  • 表示位置参数的数量

$*

  • 表示所有位置参数的内容

$?

  • 执行上一个程序的返回值
  • 0表示正确执行

$$

  • 表示当前进程的pid

$!

  • 执行上一个背景指令的pid

$0

  • 这个程序的执行名字

$n 这个程序的第n个变量 n=1…9


变量

a=123

b=jkl

c=$(ls)

使用变量

  • echo $a
  • let a=a+789

shell没有变量类型之说,只有在比较的时候有字符串和整数之说


比较

整数

  • -eq

  • -ne

  • -ge

    • 大于等于
  • -gt

  • -lt

  • -le

字符串

  • -z 空串
  • -n 非空串
  • =
  • !=
#如果$a等于a*(字符匹配),那么结果为true
if [ "$A" == "a*" ];then
echo "==/"a*/""
fi

#如果$1等于a*(字符匹配),那么结果为true  $1为第一个参数
if [ "$1" == "--clean" ];then
echo "==/"--clean/""
fi

if [ "$1" == "--help" ] || [ "$1" == "-h" ];then
echo "==/"--help/""
fi

0为真 1为假

demo

#!/bin/bash

lock=$(./pcieserver -I 130 -d 1)
status="0x40"
until [[ "$lock" =~ $status ]]
do
	lock=$(./pcieserver -I 130 -d 1)
	Echo $lock
done
if [[ $lock  = ~ $status ]]
then
	echo "clock is 0x40 locked"
	echo "config ToD load"
	todload1=$(./pcieserver -w 0x6004 -v 0x00000000 -d 1)
	todload2=$(./pcieserver -w 0x6000 -v 0x00000001 -d 1)
	todload3=$(./pcieserver -w 0x6000 -v 0x00000000 -d 1)

	echo "config Loopback"
	lp=$(./pcieserver -w 0x20008 -v 0xc0000000 -d 1)
	r1=$(./pcieserver -w 0x20000 -v 0x1 -d 1)
	r0=$(./pcieserver -w 0x20000 -v 0x0 -d 1)

fi

函数

#!/bin/bash
# author:菜鸟教程
# url:www.runoob.com

demoFun(){
    echo "这是我的第一个 shell 函数!"
}
echo "-----函数开始执行-----"
demoFun
echo "-----函数执行完毕-----"
 #!/bin/bash
# author:菜鸟教程
# url:www.runoob.com

funWithParam(){
    echo "第一个参数为 $1 !"
    echo "第二个参数为 $2 !"
    echo "第十个参数为 $10 !"
    echo "第十个参数为 ${10} !"
    echo "第十一个参数为 ${11} !"
    echo "参数总数有 $# 个!"
    echo "作为一个字符串输出所有参数 $* !"
}
funWithParam 1 2 3 4 5 6 7 8 9 34 73
  • 在Shell中,调用函数时可以向其传递参数。在函数体内部,通过 $n 的形式来获取参数的值,例如,$1表示第一个参数,$2表示第二个参数…

函数的参数返回

  • 参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。 return后跟数值n(0-255
  • 也可以使用echo 返回值

流程控制