tftp 0x60003000 uImage;tftp 0x60500000 vexpress-v2p-ca9.dtb;setenv bootargs ‘root=/dev/mmcblk0 console=ttyAMA0’;bootm 0x60003000 – 0x60500000;
tftp 0x60003000 uImage;tftp 0x60800000 vexpress-v2p-ca9.dtb;setenv bootargs ‘root=/dev/nfs rw nfsroot=10.0.0.103:/home/zzh0838/nfs,proto=tcp,nfsvers=3,nolock init=/linuxrc ip=10.0.0.144 console=ttyAMA0’;bootm 0x60003000 – 0x60800000;
1. 字符串的判断与比较
在 shell 中,可以使用 test 或者 [] 来做判断:
# 使用 $? 查看上一条命令的退出码,0 代表正确(true),非 0 代表错误(false)
#这里的 a b 就是字符串本身,而不是变量
# 注意 == 两边的空格不能少
test a == b ; echo $?
1
test a != b ; echo $?
0
test $a == $b ; echo $? #这里的 a b 是变量
# 注意 == 两边的空格不能少,[ 右侧空格不能少, ] 左侧空格不能少
[ $USER == root ]; echo $?
# 相等输出 Y,不相等输出 N
[ $USER == root ] && echo Y || echo N
[ $USER != root ] && echo Y || echo N
# 用 -z 可以测试一个字符串是否为空
[ -z "$TEST" ] && echo Y || echo N
# -n 测试一个字符串是否非空
# 注意点: $ 引用一个值时,使用 "" 括起来,否则 -n 判断会出错
[ -n "$TEST" ] && echo Y || echo N
2. 整数的判断与比较
# -eq 判断两个数是否相等
test 3 -eq 3 && echo Y || echo N
[ 3 -eq 3 ] && echo Y || echo N
# -gt 大于
[ 6 -gt 4 ] && echo Y || echo N
# -ge 大于等于
[ 6 -ge 4 ] && echo Y || echo N
# -lt 小于
[ 4 -lt 3 ] && echo Y || echo N
# -le 小于等于
[ 3 -le 4 ] && echi Y || echo N
3.文件属性判断
# 判断文件是否存在
[ -e test.txt ] && echo Y || N
# 判断文件是否不存在
[ ! -e test.txt ] && echo Y || N
# 判断文件存在,且类型是文件
[ -f test.txt ] && echo Y || N
# 判断文件存在,且类型是目录
[ -d hello ] && echo Y || N
# 判断是否为软链接
[ -L soft.txt ] && echo Y || echo N
# 两个文件使用相同设备、相同inode编号,则返回真,否则返回假 即硬链接判断
[ /root/hard -ef /etc/hosts ] && echo Y || echo N
# 判断当前用户对文件是否有读权限
[ -r test.txt ] && echo Y || echo N
# 判断当前用户对文件是否有写权限
[ -w test.txt ] && echo Y || echo N
# 判断当前用户对文件是否有执行权限
[ -x ver1.txt ] && echo Y || echo N
# 需要注意的是 root 用户对所有文件都具有读写权限,但是 root 对文件没有可执行权限的情况下是不可执行该文件的
4. if 语句
# if
x=3
if [ x -gt 1 ] then
echo "hello"
fi
# 双分支 if
if [ x -lt 5 ] then
echo "hello"
else
echo "hello world"
fi
# 多分支 if
num=$[RANDOM%10+1]
read -p "请输入 1~10 之间的整数:" guess
if [ $guess -eq $num ];then
echo "恭喜,猜对了,就是:$num"
elif [ $guess -lt $num ];then
echo "Oops,猜小了."
else
echo "Oops,猜大了."
fi
5. case 语句
read -p "请输入一个 a~f 之间的字母:" key
case $key in
a)
echo "I am a.";;
b)
echo "I am b.";;
c)
echo "I am c.";;
d)
echo "I am d.";;
e)
echo "I am e.";;
f)
echo "I am f.";;
*)
echo "Out of range.";;
esac
6. for 循环
for i in 1 2 3 4 5
do
ehco $i
done
for ((i=1;i<=5;i++))
do
echo $i
done
for i in `cat user.txt`
do
if id $i &>/dev/null ;then
echo "$i,该账户已经存在!"
else
useradd $i
echo "123456" | passwd --stdin $i
fi
done
# continue 的使用
for i in {1..5}
do
[ $i -eq 3 ] && continue
echo $i
done
# break 的使用
for i in {1..5}
do
[ $i -eq 3 ] && break
echo $i
done
echo "game over."
# exit
for i in {1..5}
do
[ $i -eq 3 ] && exit
echo $i
done
echo "game over."
7. 数组
数组是一组数据的集合,数组中的每个数据被称为一个数组元素。目前 Bash 仅支持一维索引数组和关联数组,Bash 对数组大小没有限制。
# 数组的定义
name[0]="hello"
name[1]="world"
# 数组的引用
echo ${name[0]}
ehco ${name[1]}
# 数组的遍历
for i in "${name[@]}"
do
echo $i
done
关联数组类似 Java 中的 Map,关联数组的下标可以是
任意字符串。关联数组的索引要求具有唯一性。
declare -A man
man[name]=Jack
man[age]=18
# 将数组作为一个整体输出
echo ${man[*]}
# 数组的遍历
for i in "${man[@]}"
do
echo $i
done
8.函数
# 定义函数
mymkdir() {
mkdir /tmp/test
touch /tmp/t.txt
}
#定义函数并不会导致函数内的任何命令被执行,仅当通过函数名称调用时,函数内的命令才会被触发执行
mymkdir
参考资料
- 《Linux Shell 核心编程指南》 丁明一
- Bash 脚本教程
阅读全文
下载说明:
1、本站所有资源均从互联网上收集整理而来,仅供学习交流之用,因此不包含技术服务请大家谅解!
2、本站不提供任何实质性的付费和支付资源,所有需要积分下载的资源均为网站运营赞助费用或者线下劳务费用!
3、本站所有资源仅用于学习及研究使用,您必须在下载后的24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担!
4、本站站内提供的所有可下载资源,本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发),但本站不保证资源的准确性、安全性和完整性,用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug!如有链接无法下载、失效或广告,请联系客服处理!
5、本站资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您的合法权益,请立即告知本站,本站将及时予与删除并致以最深的歉意!
6、如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
7、如果您喜欢该资源,请支持官方正版资源,以得到更好的正版服务!
8、请您认真阅读上述内容,注册本站用户或下载本站资源即您同意上述内容!
原文链接:https://www.dandroid.cn/archives/20388,转载请注明出处。
1、本站所有资源均从互联网上收集整理而来,仅供学习交流之用,因此不包含技术服务请大家谅解!
2、本站不提供任何实质性的付费和支付资源,所有需要积分下载的资源均为网站运营赞助费用或者线下劳务费用!
3、本站所有资源仅用于学习及研究使用,您必须在下载后的24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担!
4、本站站内提供的所有可下载资源,本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发),但本站不保证资源的准确性、安全性和完整性,用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug!如有链接无法下载、失效或广告,请联系客服处理!
5、本站资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您的合法权益,请立即告知本站,本站将及时予与删除并致以最深的歉意!
6、如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
7、如果您喜欢该资源,请支持官方正版资源,以得到更好的正版服务!
8、请您认真阅读上述内容,注册本站用户或下载本站资源即您同意上述内容!
原文链接:https://www.dandroid.cn/archives/20388,转载请注明出处。
评论0