shell学习(一)
来源:互联网 发布:js 上传文件的原理 编辑:程序博客网 时间:2024/06/06 00:40
算术运算
shell的算术运算真是奇怪,必须要加双括号,若引用但括号会有bug
let命令的替代表示形式是:
((算术表达式)) 或 [算术表达式]
如下面代码:
i=2j=3k=0let "k=i+j"echo $kecho $(i+j)echo $[i/j]
一定要换为$((i+j))
才行。
还有 let "k=i+j"
的双引号要不要效果一样
中括号可能忽略空格
下面的代码就是左边的中括号与里面内容之间缺少括号而导致的错误
m -rf /home/tom/cdtdir=/home/tom/cdt[!-e$dir ]&& mkdir $dir
正确的代码是:
m -rf /home/tom/cdtdir=/home/tom/cdt[ !-e$dir ]&& mkdir $dir
条件测试语句
格式1: test 测试表达式
格式2: [ 测试表达式 ]
格式3: [[ 测试表达式 ]] (bash 2.x 版本以上)
在 [[ ]] 中可以使用通配符进行模式匹配
奇怪的case
echo -n "Do you agree with this? [yes or no]: "read yncase $yn in [Yy] | [Yy][Ee][Ss] ) echo "Agree." ;; [Nn] | [Nn][Oo] ) echo "Not agree" exit 1 ;; *) echo " Invalid input. " ;; esca
一个复杂的while例子
先上代码和结果
# 找到当前目录下包含空格的文件,将空格替换成下划线DIR="."find $DIR -type f | while read file;doif [[ "$file" == *[[:space:]]* ]]; then mv "$file" $(echo "$file" | tr ' ' '_')fidone
查当前目录下的所有普通文件: find . -type f
通过管道 ‘|’ 把列出的当前行find到的所有文件名赋值给read命令后的变量file变量: find $DIR -type f | while read file
将文件名的空格换为”_”: echo "$file" | tr ' ' '_'
select
select variable in list do # 循环开始的标志 commands # 循环变量每取一次值,循环体就执行一遍done # 循环结束的标志
如:
select var in "Linux" "Gnu Hurd" "Free BSD" "Other";doecho "You have select $var"done
select 是个无限循环
通常要配合 case 语句处理不同的选单及退出
select 循环的退出
按 ctrl+c 退出循环
在循环体内用 break 命令退出循环
或用 exit 命令终止脚本
0 0
- shell学习(一)
- Shell脚本学习一
- shell学习笔记《一》
- shell基础知识学习一
- shell scripts学习(一)
- shell scripts学习(一)
- Shell学习笔记一
- Shell学习杂记一
- shell编程学习一
- shell脚本学习《一》
- shell学习一
- shell脚本学习 一
- Shell学习(一)
- Linux shell 学习(一)
- Shell学习-入门(一)
- 学习Shell脚本[一]
- 学习shell脚本(一)
- Linux Shell 学习(一)
- python机器学习(02)
- EL表达式 (详解)
- 【SSM】:spring+springmvc+mybatis框架中的XML配置文件功能详细解释
- asp.net vb新闻页动态生成静态页面的实例代码
- mysql基础
- shell学习(一)
- 二叉树的所有路径
- MySQL数据类型
- .write()与innerHTML的区别
- HDU 2066 最简单的Dijkstra算法实例
- linux之目录结构
- javaScript的数组队列操作
- Usage of loss functions
- Shader编程学习笔记(五)—— Fixed Function Shader 1