最近在阅读u-boot,里面有大量的shell指令,在这里做下笔记。
(1)数值比较:
大于:gt
小于:lt
等于:eq
不等于:ne
小于等于:le
大于等于:ge
(2)条件
条件语句位于[ ]之内,且格式为 [ xxxxx ],xxxxx前后的空格不可以省略。
两种常用格式:
[ xxxx ] || yyyy; //如果xxxx为假则执行yyyy
[ xxxx ] && yyyy; //如果xxxx为真则执行yyyy
(3)传参
$#相当于C的argc
$0相当于C的argv[0]
$1相当于C的argv[1]
依此类推
(4)字符串比较
空串:-z
相等:=
不等:!=
非空:-n
(5)逻辑预算
逻辑与:-a
逻辑或:-o
(6)添加到文件
新建文件:>
追加文件:>>
(7)数组元素选择初始化:
int array[] = {[3] = 5, [9] = 2};
(8)指定代码段
uboot中命令代码位于段.u_boot_cmd内,如果用汇编可以轻易的指定代码段,但是如果使用C语言指定代码需要如下处理
__attribute__((unused, section(".u_boot_cmd"), aligned(4)))
使用__attribute__代码属性来指定代码的段位置。