博客
关于我
【CO004】操作系统实践笔记3 —— Shell Script 语法速记
阅读量:616 次
发布时间:2019-03-12

本文共 2478 字,大约阅读时间需要 8 分钟。

技术笔记:Shell.script 编程指南

[1] 注释

# 单行注释:'多行注释,这是第一个注释,这是第二个注释,这是第三个注释'

[2] 输出

echo "Hello World!"

[3] 变量

# 全局变量定义:mynum=1315# 数字mystr="hello world"# 字符# 局部变量定义local mystr="abc"mystr+=123 # 最终结果为"abc123"

[4] 访问变量

# 使用 $variable_name,{} 用于显示更清晰的边界mynum=123code="abc"mystr=${code} # 将 mystr 从 "abc" 增长为 “abc123”echo "Before: ${mystr}"mystr+=${mynum}echo "After: ${mystr}"

[5] 数组

# 定义数组myarray=()myarray=("three" 1 "five" 0)# 设置值myarray[2]="eight"myarray[5]="!"# 打印不同结果echo "${myarray[0]}" # 显示第一个项目echo "${myarray[@]}" # 获取整个数组,最常用于 for 循环echo "${#myarray[@]}" # 获取项目数量echo "${!myarray[@]}" # 获取项目的索引

[6] 字符串

#!/bin/bashmylongstr="this is a long string"# 初始化echo "My string: ${mylongstr}"# 空行echo ""# 打印字符串的长度echo "Number of characters in string: ${#mylongstr}"# 空行echo ""# 将字符串按空格分割并打印为数组echo "Splitting my string like an array:"for word in ${mylongstr[@]}; do    echo "${word}"done

[7] 算术

#!/bin/basha=2b=3mysum=$((a + b)) # 算术操作必须使用双括号!echo "Sum of a=${a} and b=${b} is ${mysum}"

[8] 条件语句

#!/bin/bashA=1if [ $((A)) -eq 0 ]; then    echo "A equals to 0"elif [ $((A)) -gt 0 ]; then    echo "A is greater than 0"else    echo "A is smaller than 0"fi
#!/bin/bashmystr="This is an OS course"if [ -z "${mystr}" ]; then    echo "Ops... the string is empty."else    echo "The string is not empty."fi
#!/bin/bashif [ -f example.txt ]; then    echo "File example.txt exists."else    echo "Ops... example.txt does not exist."fi

[9] 表格以下是常用shell脚本操作符及其说明:

操作符 描述
-eq 返回两个数字是否相等。如果是,表达式为真。
-ne 返回两个数字是否不等。如果是,表达式为真。
-lt 返回数字a小于数字b。如果是,表达式为真。
-gt 返回数字a大于数字b。如果是,表达式为真。
-le 返回数字a小于或等于数字b。如果是,表达式为真。
-ge 返回数字a大于或等于数字b。如果是,表达式为真。
== 返回两个字符串是否相等。如果是,表达式为真。
!= 返回两个字符串是否不等。如果是,表达式为真。
! 返回表达式是否为假。如果是,表达式为真。
-z 检查字符串是否为空。如果是,表达式为真。
-d 检查目录是否存在。如果是,表达式为真。
-f 检查文件是否存在且是正规文件。如果是,表达式为真。
-e 检查文件是否存在。如果是,表达式为真。
-r 检查文件是否存在且具有读取权限。如果是,表达式为真。
-w 检查文件是否存在且具有写入权限。如果是,表达式为真。
-x 检查文件是否存在且具有执行权限。如果是,表达式为真。

[10] 循环

#!/bin/bashA=("a" "b" "c") # 打印 1 到 10for i in {1..10}; do    echo "${i}"done# 打印 a 到 cfor char in ${A[@]}; do    echo "${char}"done
#!/bin/bashA=0 # 打印 0 到 9,每个数字占一行while [ $((A)) -lt 10 ]; do    echo $((A))    (( A++ ))done

[11] 输入输出处理

#!/bin/bashecho "You called $0, with"if [ $# -eq 0 ]; then    echo "no arguments..."    exit 0ficounter=0for i in "$@"; do    (( counter++ ))    echo "Arg[${counter}]: ${i}"done

[12] 函数

#!/bin/bash# 函数前需要一个空格!function addition {    result=$(( $1 + $2 ))}function main {    local a=1    local b=2    result=    addition $a $b    echo "${a}+${b}=${result}"}main

转载地址:http://nxwaz.baihongyu.com/

你可能感兴趣的文章
php判断复选框是否被选中的方法
查看>>
PHP判断指定目录下是否存在文件
查看>>
php判断数组是否为空
查看>>
PHP判断数组是否有重复值、获取重复值
查看>>
PHP利用正则表达式实现手机号码中间4位用星号(*)替换显示
查看>>
PHP加密与安全的最佳实践
查看>>
PHP区分 企业微信浏览器 | 普通微信浏览器 | 其他浏览器
查看>>
php原生代码怎么连表查询,PHP tp5中使用原生sql查询代码实例
查看>>
PHP去掉转义符
查看>>
php反射api
查看>>
PHP反射ReflectionClass、ReflectionMethod 入门教程
查看>>
PHP反射机制
查看>>
php取当天的最后一秒_Docker快速搭建PHP开发环境详细教程
查看>>
php取绝对值
查看>>
php各种常用的算法
查看>>
php各种缓存策略对比
查看>>
php后台“爬虫”模拟登录第三方系统
查看>>
php后台的在控制器中就可以实现阅读数增加
查看>>
php命令行生成项目结构
查看>>
php命名空间
查看>>