找回密码
 立即注册
首页 业界区 安全 嵌入式 - shell 常用语法简单总结

嵌入式 - shell 常用语法简单总结

但婆 昨天 00:05
shell 常用语法

初步使用        Linux中工具链的配置        变量        参数        条件判断        循环        输入读取        函数        正则表达式        文本处理工具
bash和shell的关系:shell是一个概念,bash是这个概念的一个具体实现。
初步使用
  1. #!bin/bash
  2. echo "Hello world!"
  3. echo
  4. # shell
  5. vim helloworld.sh
  6. chmod u+x helloworld.sh
  7. # 在当前bash运行
  8. . helloworld.sh
  9. source helloworld.sh
  10. # 在子bash中运行,无法修改当前shell的变量
  11. ./helloworld.sh
复制代码
Linux中工具链的配置

​        ~/.bashrc用于定义当前用户的Bash shell 环境参数。每次打开终端时该文件就会执行。在~/.bashrc中添加
  1. export ARCH=arm
  2. export CROSS_COMPILE=arm-buildroot-linux-gnueabihf-
  3. export PATH=$PATH:/home/ayuan/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin
复制代码

  • 别名
  1. alias ll='ls -l'  # 输入 ll 等效于 ls -l
复制代码
变量
  1. # 常用系统变量
  2. echo $HOME; echo $PWD; echo $SHELL; echo $USER
  3. # 定义变量时,=号前后不能有空格
  4. # 全局变量定义,上层shell定义的全局变量下层可以查看修改,但是对上层没有影响
  5. export ARM=arm
复制代码
shell脚本中单引号和双引号的区别
  1. echo "hello $name" # hello world
  2. echo 'hello $name' # hello $name
复制代码
参数
  1. # 传入的参数个数
  2. $#
  3. # 传入的参数分别为
  4. $0; $1; $2;
  5. # 传入的所有参数,整体和分开
  6. $*; $@;
  7. # 最后一条命令的返回状态
  8. $?
  9. # 当前shell的进程ID
  10. $$
复制代码

  • 运算
  1. A=$[1+2*3]
复制代码
条件判断
  1. if [ $1 -le $b ]
  2. then
  3.         echo
  4. elif
  5.         echo
  6. fi
  7. case $1 in
  8. "1")
  9.         echo
  10. ;;
  11. "2")
  12.         echo
  13. ;;
  14. *)
  15.         echo
  16. ;;
  17. esac
  18. # 常用判断符号
  19. -eq -lt -le -gt -ge -ne
  20. -r -w -x
  21. -e # 文件存在
  22. -f # file
  23. -d # dir
  24. # 字符串比较
  25. = !=
  26. -z # 空串
  27. -n # 非空串
  28. # 逻辑
  29. -a -o !
复制代码
替换运算符

  • ${var_name:-def_Val}
    如果变量var_name存在且为非null,返回该变量的值,否则返回默认值def-Val
    注意var_name与:之间没有空格,:与-之间可以有空格。主要用途,如果变量未定义,则用默认值。
  • ${var_name:=val}
    如果变量var_name存在且为非null,返回该变量的值,否则,把val的值赋给变量var_name,并返回var_name的值val。
    注意var_name与:之间没有空格,:与=之间也不能有空格。
  • ${var_name:?message}
    如果变量var_name存在且为非null,返回该变量的值,否则返回该变量的名字var_name:提示信息meesage,并退出当前命令或脚本。
    注意 var_name 与 : 之间没有空格,: 与 ? 之间也不能有空格。
  • ${var_name:+val}
    如果变量var_name存在且为非null,返回val,否则返回null。
    注意 var_name 与 : 之间没有空格,: 与 + 之间也不能有空格。
  • ${#val_name}
    返回变量长度。
  • $(())
    算术运算操作。
  • $((var1 opr var2))
    例如:  $((5+1)) 只能是 + - * / 和 () 运算符,并且只能做整数运算。
  • $()
    命令代换,类似于反引号(`), 例如:echo $(date)。
循环

[code]for i in $@do        echo $idone#for((i=1;i

相关推荐

您需要登录后才可以回帖 登录 | 立即注册