shell的一些笔记

示例

#!/bin/sh
 
if [ ${#@} -ne 0 ] && [ "${@#"--help"}" = "" ]; then
 
 printf -- '...help...\n';
 
 exit 0;
 
fi;

for i in "$@"; do
    echo $i
done

for i in "$*"; do
    echo $i
done

my_array=(1 2 3)
echo "数组的元素为: ${my_array[*]}"
echo "数组元素个数为: ${#my_array[*]}"

string="test"
echo ${string:0:2} # 输出 te

echo date +'%Y-%m-%d %H:%M:%S'

@ 或 * 可以获取数组中的所有元素,前面加个#可以取元素个数,${#my_array[*]}

批量给变量赋值

  • for file in ls /etc
  • for file in $(ls /etc)
  • 使用一个定义过的变量,只要在变量名前面加美元符号即可
  • 变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,推荐给所有变量加上花括号
  • unset variable_name 删除变量

Shell 传递参数

  • $# 传递到脚本的参数个数
  • $* 以一个单字符串显示所有向脚本传递的参数。
  • $@ 与$*相同,但是使用时加引号,并在引号中返回每个参数。
  • $$ 脚本运行的当前进程ID号
  • $! 后台运行的最后一个进程的ID号
  • $- 显示Shell使用的当前选项,与set命令功能相同。
  • $? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

$* 与 $@ 区别,相同点:都是引用所有参数。不同点:只有在双引号中体现出来一个参数和多个参数

运算符

  • 算数运算符
  • 关系运算符:-eq -ne -gt -lt -ge -le
  • 布尔运算符:! -o -a
  • 逻辑运算符:&& ||
  • 字符串运算符:-z -n
  • 文件测试运算符:-s -x -d -f -e test 命令用于检查某个条件是否成立,可以用上面的几种运算符对数值、字符和文件三个方面的测试。

版权

本作品采用 CC BY-NC-ND 4.0 授权,转载必须注明作者和本文链接。

上一篇:操作系统总结
下一篇:批量写入数据