Shell 学习笔记
来源:互联网 发布:js获取文件路径 编辑:程序博客网 时间:2024/05/29 19:50
shell可以用来做什么
- 快速批量处理文件
- 检测系统性能
- 快速简单地完成编程
来自菜鸟教程
read可用于读取输入
echo和printf都可以用于输出
很多都没写出来,觉得太多了都写好心累,比较不常用的要用再查好了。
#!
#!/bin/bash# #! 是一个约定的标记,告诉系统这个脚本用什么解释器执行
变量
定义变量时,变量名和等号之间不能有空格
s="hello world"a=1
使用变量时,在变量名前加$符号
s="hello world"echo $secho ${s}# 花括号可选
声明只读变量,用readonly
s="hello world"readonly s
删除变量,用unset(unset命令不能删除只读变量)
unset variable_name
字符串
- 单引号 : 变量无效 不能出现单引号
- 双引号 : 变量有效 可以出线转义字符
s="hello \" $s \""# 拼接字符串直接连起来,不用加号s="hello"s"me"# 获取字符串长度用 # 号echo ${#s}# 提取子字符串 s:start:endecho ${s:1:4}# 查找子字符串 index 修改echo `expr index "$s" is`
数组
bash只支持一维数组
数组形式: 数组名=(value1 value2 … valuen)
以空格隔开
# 读取数组元素值echo ${arr[i]}# 获取整个数组echo ${arr[@]}echo ${arr[*]}# 获取数组长度echo ${#arr[@]}echo ${#arr[*]}
传递参数
数学运算
原生的bash不支持数学运算,但可以用其他命令来实现
表达式和运算符之间要有空格
完整的表达式要被“ 包含 加减乘除
条件表达式要放在方括号之间
val=`expr 2 + 2`[$a == $b]
乘号(*)前要加反斜杠(\)才能实现乘法运算
关系和布尔运算
if [$a -gt $b]then echo ">"elsethen echo "<="fi
if
if condition1then command1elif condition2 then command2else commandNfi
for
for var in item1 item2 ... itemNdo command1 command2 ... commandNdone
while
while conditiondo commanddone
until
until conditiondo commanddone
case
case 值 in模式1) command1 command2 ... commandN ;;模式2) command1 command2 ... commandN ;;esac
也有 break 和 continue
函数
觉得跟其他语言的函数相差不多
举两个例子说明
#!/bin/bash# author:菜鸟教程# url:www.runoob.comfunWithReturn(){ echo "这个函数会对输入的两个数字进行相加运算..." echo "输入第一个数字: " read aNum echo "输入第二个数字: " read anotherNum echo "两个数字分别为 $aNum 和 $anotherNum !" return $(($aNum+$anotherNum))}funWithReturnecho "输入的两个数字之和为 $? !"
#!/bin/bash# author:菜鸟教程# url:www.runoob.comfunWithParam(){ echo "第一个参数为 $1 !" echo "第二个参数为 $2 !" echo "第十个参数为 $10 !" echo "第十个参数为 ${10} !" echo "第十一个参数为 ${11} !" echo "参数总数有 $# 个!" echo "作为一个字符串输出所有参数 $* !"}funWithParam 1 2 3 4 5 6 7 8 9 34 73
0 0
- [Bash Shell] Shell学习笔记
- [Bash Shell] Shell学习笔记
- shell shell学习笔记001--什么是shell?
- shell学习笔记【原创】
- shell学习笔记2
- shell(bash)学习笔记
- Shell学习笔记
- shell学习笔记《一》
- Unix shell学习笔记
- shell编程学习笔记
- shell学习笔记
- Linux Shell学习笔记
- Shell学习笔记
- Power Shell 学习笔记
- Shell 编程-学习笔记
- shell编程学习笔记
- Shell学习笔记
- shell 学习笔记
- Android开发之如何保证Service不被杀掉(broadcast+system/app)
- 一位资深工程师FPGA设计经验精华,吸收后你也能强大!
- CoordinatorLayout初步应用
- Anroid Studio的安装步骤
- 设计模式学习资源
- Shell 学习笔记
- socket和非阻塞式通信
- c++自制锁机程序--两行代码
- 【mybatis】认识selectKey
- hadoop安全机制Kerberos详细介绍
- mfc 修改 outlook text lable的内容
- 如何使用MyEclipse的快捷键查找文件和类等资源
- 计算机网络(谢希仁)学习笔记(1)
- leetcode_257. Binary Tree Paths