hylan:shell脚本鸡肋--基本脚本

2024-05-02 21:58
文章标签 基本 shell 脚本 鸡肋 hylan

本文主要是介绍hylan:shell脚本鸡肋--基本脚本,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  1. ${variable} 形式引用变量   额外的花括号通常用来帮助识别美元符后面的变量名。
  2. 命令替换 的两种方法:第一种 反引号字符 `   例如:echo `date`     第二种 $()格式   例如:echo $(date)
  3. 为了引用当前目录下的文件,可以在shell中使用单点操作符 即(.)。
  4. today变量是被赋予格式化后的data命令的输出。这是提取日期信息生成日志文件名常用的一种技术。  例如:today=$(date +%y%m%d)         ls . -al > log.$today    在当前目录(.) 创建了一个文件:log.180320
  5. 反斜线 \ 允许shell脚本将美元符解读为实际的美元符,而不是变量。
  6. 引用一个变量值时需要使用美元符,而引用变量来对其进行赋值时则不要使用美元符。
  7. umask值只是个掩码,它会屏蔽掉不想授予该安全级别的权限。要把umask值从对象的全权限值中减掉。对文件来说,全权限的值是666(所有用户都有读和写的权限 即:rw-rw-rw-);对目录来说,则是777(所有用户都有读、写、执行权限  即:rwxrwxrwx)
  8. 输出重定向(将命令的输出重定向到文件):command > outputfile  新建或覆盖文件outputfile       command >> outputfile 新建或追加文件outputfile     输入重定向(将文件的内容重定向到命令):command < inputfile   例如:wc < log.180320-2  结果显示了文件log.180320-2 中的 行数 词数 和 字节数。 内联输入重定向(无需使用文件进行重定向 数据的开始和结尾文本标记必须一致):command << marker  date  marker
  9. 管道(管道了连接:将命令输出重定向到另一个命令) command1 | command2     linux实际上会同时运行这两个命令,在系统内部将它们连接起来。在第一个命令产生输出的同时,输出会被立即送给第二个命令。数据传输不会用到任何中间文件或缓冲区。 可以在一条命令中使用任意多条管道。也可以搭配使用重定向和管道来将输出保存到文件中。
  10. 数学运算 两个方法: expr命令 和 $[ operation ]    备注:bash shell数学运算符只支持整数运算,若要进行任何实际的数学计算,这是一个巨大的限制。
  11. bc(內建的bash计算器 浮点解决方案) 浮点运算是由內建变量 scale 控制的,将这个值设置成计算结果中保留的小数位数。scale 默认值是0。
  12. 在脚本中使用bc 基本格式:variable=$(echo"options; expression" | bc)   例如:
  13. marvin@marvin-pc:~/hylan$ var1=20;var2=3.14159
    marvin@marvin-pc:~/hylan$ var3=$(echo "scale=2;$var1 * $var2" | bc)
    marvin@marvin-pc:~/hylan$ echo $var3
    62.83180
  14. 内联输入重定向:marvin@marvin-pc:~/hylan$ variable=$(bc << EOF
    > options
    > statements
    > expressions
    > EOF
    > )
  15. 例如:
  16. marvin@marvin-pc:~/hylan$ var1=10.46
    marvin@marvin-pc:~/hylan$ var2=43.67
    marvin@marvin-pc:~/hylan$ var3=33.2
    marvin@marvin-pc:~/hylan$ var4=71
    marvin@marvin-pc:~/hylan$ var5=$(bc << EOF
    > scale=4
    > a1=($var1 * $var2)
    > b1=($var3 * $var4)
    > a1 + b1
    > EOF
    > )
    marvin@marvin-pc:~/hylan$ echo $var5
    2813.9882
  17. 如上,在bash计算器中创建的变量只在bash计算器中有效(a1和b1),不能在shell脚本中使用。
  18. 退出状态码 是一个0~255的整数值,在命令结束运行时由命令传给shell,可以捕获这个值并在脚本中使用。








这篇关于hylan:shell脚本鸡肋--基本脚本的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/955221

相关文章

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

ModelMapper基本使用和常见场景示例详解

《ModelMapper基本使用和常见场景示例详解》ModelMapper是Java对象映射库,支持自动映射、自定义规则、集合转换及高级配置(如匹配策略、转换器),可集成SpringBoot,减少样板... 目录1. 添加依赖2. 基本用法示例:简单对象映射3. 自定义映射规则4. 集合映射5. 高级配置匹

利用Python脚本实现批量将图片转换为WebP格式

《利用Python脚本实现批量将图片转换为WebP格式》Python语言的简洁语法和库支持使其成为图像处理的理想选择,本文将介绍如何利用Python实现批量将图片转换为WebP格式的脚本,WebP作为... 目录简介1. python在图像处理中的应用2. WebP格式的原理和优势2.1 WebP格式与传统

shell中set -u、set -x、set -e的使用

《shell中set-u、set-x、set-e的使用》本文主要介绍了shell中set-u、set-x、set-e的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录✅ 1. set -u:防止使用未定义变量 作用: 示例:❌ 报错示例输出:✅ 推荐使用场景:✅ 2. se

SQL BETWEEN 语句的基本用法详解

《SQLBETWEEN语句的基本用法详解》SQLBETWEEN语句是一个用于在SQL查询中指定查询条件的重要工具,它允许用户指定一个范围,用于筛选符合特定条件的记录,本文将详细介绍BETWEEN语... 目录概述BETWEEN 语句的基本用法BETWEEN 语句的示例示例 1:查询年龄在 20 到 30 岁

mysql中insert into的基本用法和一些示例

《mysql中insertinto的基本用法和一些示例》INSERTINTO用于向MySQL表插入新行,支持单行/多行及部分列插入,下面给大家介绍mysql中insertinto的基本用法和一些示例... 目录基本语法插入单行数据插入多行数据插入部分列的数据插入默认值注意事项在mysql中,INSERT I

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删

mapstruct中的@Mapper注解的基本用法

《mapstruct中的@Mapper注解的基本用法》在MapStruct中,@Mapper注解是核心注解之一,用于标记一个接口或抽象类为MapStruct的映射器(Mapper),本文给大家介绍ma... 目录1. 基本用法2. 常用属性3. 高级用法4. 注意事项5. 总结6. 编译异常处理在MapSt

MyBatis ResultMap 的基本用法示例详解

《MyBatisResultMap的基本用法示例详解》在MyBatis中,resultMap用于定义数据库查询结果到Java对象属性的映射关系,本文给大家介绍MyBatisResultMap的基本... 目录MyBATis 中的 resultMap1. resultMap 的基本语法2. 简单的 resul

Java 枚举的基本使用方法及实际使用场景

《Java枚举的基本使用方法及实际使用场景》枚举是Java中一种特殊的类,用于定义一组固定的常量,枚举类型提供了更好的类型安全性和可读性,适用于需要定义一组有限且固定的值的场景,本文给大家介绍Jav... 目录一、什么是枚举?二、枚举的基本使用方法定义枚举三、实际使用场景代替常量状态机四、更多用法1.实现接