编程小白的shell学习

58 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第18天点击查看活动详情

shell是一种非常重要的脚本语言,在很多技术中都可以用到,接下来对常用易混淆知识做一下总结

test.sh

  • !/bin/bash :使用此解析器解析shell脚本
  • shell脚本:命令集合,需要在linux终端进行
  • vi test.sh :创建脚本
  • 脚本执行 :编写完成之后添加执行权限
  • chmod u+x xxx.sh
  • ./xxx.sh :执行脚本

变量--必须赋值

  • 普通(本地)变量:temp=888,=前后不能有空格,只能在当前进程使用
  • 环境(全局)变量:在当前操作系统内部可以全局访问。系统自带:env命令显示的(PWD SHELL PATH HOME) 用户自定义的 将普通变量升为系统级别的环境变量 :普通变量前+set/export
  • 位置变量:执行脚本的时候,可以给脚本传递参数,脚本内部接收参数需使用位置变量 ./test.sh aa bb(参数) $1第一个位置参数
  • 特殊变量:
    • $# :获取给脚本传递参数的个数
    • $@:传递的所有参数
    • $?脚本执行之后的状态(脚本执行成功=0还是失败>0)
      - $$脚本执行后对应的id

echo:

普通变量(赋值默认字符串处理)取值:echo 变量名或者变量名或者 {变量名} $(shell命令),将命令执行结果给变量名

条件判断和循环

if空格[空格条件判断空格];then

    逻辑处理(shell命令)
elif空格[空格条件判断空格];then
    命令
else
    命令
fi
if空格[空格条件判断空格]

then

   逻辑处理(shell命令)

fi

for循环

#for/while
for 变量 in $集合名;do
    命令
done
#打印时引号的作用

函数

  • 没有函数修饰,没有参数,没有返回值,但是可以传参
  • 函数名(){
  • #函数体->shell命令+逻辑
    
  • }
  • 函数调用:
    • 函数名 参数1 参数2 参数3
    • 不能返回值,只能查看调用状态