shell用法总结1

149 阅读1分钟

引言

  • 该系列为个人经常需要将项目代码工程化,所以需要用到shell脚本,前段时间的每日一题沸点活动虽然写了不少,但是因为要满足活动要求,所以很多函数等语法无法介绍完全,该文将介绍一个函数具体详细一些的用法

命令行传参

  • 该场景在很多时候都会用到,就是执行文件中部分参数需要是一个变量,执行的时候根据命令行位置分别传入对应的参数来完成
#!/bin/bash

echo "Shell 传递参数实例!";
echo "执行的文件名:$0";
echo "第一个参数为:$1";
echo "第二个参数为:$2";
echo "第三个参数为:$3";
  • 假设该shell文件名为test.sh,执行sh test.sh 1 2 3命令
    • 注意test.sh为第0个参数,以此类推
    • 关于多个参数一般都是加空格使用位置对应传参,或者使用设置好的参数名称来进行传参
  • 输出结果
Shell 传递参数实例!
执行的文件名:./test.sh
第一个参数为:1
第二个参数为:2
第三个参数为:3

关于$符号得其他用法

  • $#$*的作用
    • $#表示统计输入的参数个数(不包含第0个参数)
    • $*表示将传递的所有参数使用字符串的形式返回
# 接上边代码
echo "参数个数为:$#";
echo "传递的参数有:$*";
  • 结果展示
参数个数为:3
传递的参数有:1 2 3
  • $*$@
    • *与@其实差不多,都是返回所有的参数
    • 区别在于返回的是所有参数作为一个字符串返回,*返回的是所有参数作为一个字符串返回,@是将每一个参数都作为一个结果来返回
# 接上边代码
echo "传递的参数有:$*";
echo "传递的参数有:$@";
  • 结果展示
传递的参数有:"1 2 3"
传递的参数有:"1" "2" "3"

结尾

  • 除了上述几个其实还有一些,如
    • $?:显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误
    • $!:后台运行的最后一个进程的ID号
  • 其他的也没咋用过啦,用的时候再补充