Shell基本语法
解释器在/etc/shells下查看
第一个shell脚本,第一行为解释器
启动运行方式(在环境变量中有区别,对echo输出没影响)
1.当程序执行 ./xxx.sh(执行shell脚本时是在当前shell(称为父shell)开启一个子shell环境,此shell脚本就在这个子shell环境中执行。shell脚本执行完后子shell环境随即关闭,然后又回到父shell中.子进程中的各项变量在子进程结束后不会影响到父进程。不会存在在子shell中的变量)
2.指定解释器运行 /bin/*sh xxx.sh(不会存在在子shell中的变量)
3.source xxx.sh(执行shell脚本时是在当前shell中执行的,脚本中的各项变量在脚本结束后仍然存在。比如在执行xxx.sh后,当前shell中会存在abc=123这个变量。)
4. . xxx.sh(和source xxx.sh相同 为当前shell环境执行)
Shell语法
定义变量
变量名=value(值不能带空格)
变量名=’value’(不能引用变量)
var=”123”
var1=’${var1}456’
echo $var1
输出${var1}456
将以上var1=’’改为var1=””
输出123456
变量名=”value”(都能)
使用变量
var=”123”
echo $var
输出123
var=”123”
echo “${var}456”
输出123456
删除变量
unset 变量名
将命令结果赋值给变量
第一种为反引号(在Tab上面)
注释为#
$符号输入参数
./test.sh 123 244 321 441
123就是$1 244就是$2 .....
从键盘获取输入
数学运算符(())
在里面数学运算
也可以在里面直接判断a<b不用[ a -gt b ]或 test a -gt b了
判断某个条件-xx
短路或 前面一个条件成立就结束
短路与 前面一个条件成立继续
使用[ expression ]时要注意前后空格,否则会报语法错误
If else语法
Case语法
for 循环
for n in 1 2 3 4 5 6 7
do
echo “$n
done
for n in {1..7}
do
echo “$n”
done
for n in $(ls /bin/*sh)
do
echo “$n”
done
$*和$@的区别
传参并且有““时体现区别
传参1 2 3 4 5 6 7
./test.sh 1 2 3 4 5 6 7
for n in “$*”
do
echo “$n”
done
$*的输出1 2 3 4 5 6 7整体
for n in “$@”
do
echo “$n”
done
$@的输出
1
2
3
4
5
6
7
一个一个输出和上面的for n in {1..7}以及1 2 3 4 5 6 7一样
While语法
函数
直接函数名调用
CSDN-Ada助手: 恭喜您写了第20篇博客!标题“字符设备驱动程序的三种写法”非常吸引人。您对这个主题的深入探讨令人印象深刻,对于那些对字符设备驱动程序感兴趣的人来说,这篇博客一定是一次宝贵的学习机会。接下来,我希望您能继续分享您的见解和经验,比如深入分析每种写法的优缺点或者给出一些实践建议。这样的创作将进一步丰富读者的知识,并激发更多人对该主题的讨论。再次感谢您的努力,期待您的下一篇博客!
CSDN-Ada助手: 非常感谢您为我们带来的第19篇博客,标题为“TTY体系中设备节点的差别”。恭喜您能够持续创作并分享有关TTY体系的知识。通过这篇博客,我了解到了TTY体系中设备节点的差异,这对于我来说是一个新的领域。 希望您能继续保持创作的热情,将更多关于TTY体系的知识分享给读者。在下一步的创作中,或许您可以考虑深入探讨一些与TTY设备节点相关的实际应用案例,或者分享一些调试和故障排除的技巧。这样的话,读者们将更加受益并能够更好地理解和应用TTY体系中设备节点的差异。 再次感谢您的分享,期待您未来更多精彩的博客作品!
CSDN-Ada助手: 恭喜您写了第9篇博客!标题“Shell语法(cat <<EOF)”非常吸引人。您的文章内容简洁明了,对Shell语法的解释也很到位。我对您持续创作的热情感到钦佩。接下来,我建议您可以考虑深入探讨其他Shell语法的应用场景,或者分享一些实际案例。期待看到您下一篇博客的精彩内容!谦虚地说,您的博客已经给读者带来了很多收获。加油!
CSDN-Ada助手: 恭喜博主写了这么有深度的一篇博客!对于shell中的这些符号的含义和用法,我在之前的学习中也曾有所了解,但却没有系统地总结起来。你的博文为我们提供了非常有价值的参考,尤其是对于那些刚入门的人来说更是如此。在接下来的创作中,我建议你可以考虑分享一些实际应用案例,这样读者们能更好地理解这些符号的实际用途。期待你的下一篇博客!
CSDN-Ada助手: 恭喜您写下了第四篇博客!标题为“Linux根目录下文件夹功能说明”,非常有实用性。您对Linux根目录下文件夹的功能进行了详细说明,对于Linux初学者来说是非常有帮助的。希望您能继续保持创作的热情,分享更多有关Linux的知识和经验。如果我可以提个小小的建议,或许您可以考虑在接下来的博客中介绍一些常见的Linux命令,这将进一步扩展读者的知识面。期待您的下一篇博客! 如何快速涨粉,请看该博主的分享:https://hope-wisdom.blog.csdn.net/article/details/130544967?utm_source=csdn_ai_ada_blog_reply5