博客
关于我
【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/

你可能感兴趣的文章
onScrollStateChanged无效
查看>>
onTouchEvent构造器
查看>>
on_member_join 和删除不起作用.如何让它发挥作用?
查看>>
oobbs开发手记
查看>>
OOM怎么办,教你生成dump文件以及查看(IT枫斗者)
查看>>
OOP
查看>>
OOP之单例模式
查看>>
OOP向AOP思想的延伸
查看>>
OO第一次blog
查看>>
OO第四次博客作业
查看>>
OO面向对象编程:第三单元总结
查看>>
Opacity多浏览器透明度兼容处理
查看>>
OPC在工控上位机中的应用
查看>>
OPEN CASCADE Curve Continuity
查看>>
Open Graph Protocol(开放内容协议)
查看>>
Open vSwitch实验常用命令
查看>>
Open WebUI 忘了登入密码怎么办?
查看>>
open***负载均衡高可用多种方案实战讲解02(老男孩主讲)
查看>>
Open-E DSS V7 应用系列之五 构建软件NAS
查看>>
Open-Sora代码详细解读(1):解读DiT结构
查看>>