shell脚本备忘
来源:互联网 发布:淘宝历史宝贝如何上架 编辑:程序博客网 时间:2024/06/04 20:01
linux下常用的脚本包括 bash 和shell
官方手册 http://www.gnu.org/software/bash/manual/bashref.html
1输出信息
- #!/bin/bash
- echo "hello bash" #display one message
将以上内容保存为一个文本文件,名为me。扩展名任意,但常用 .sh作为扩展名。
执行命令 chmod a+x me 命令,为me 添加执行权限。然后在Ternimal 中运行该脚本
- ./me
- ello bash
2 获取输入参数
$n n为1-9自然数,代表输入中的第n个参数
- #!/bin/bash
- echo $1
- echo $2
- echo $3
- 执行该脚本,输出为:
- ./me i love you
- i
- love
- you
3 定义变量
赋值语句中不能有空格,引用变量时只需变量前加上$符号即可。
为避免混淆,常常使用双引号包含要引用的变量
- #!/bin/bash
- A=b
- All = all
- echo "$A"ll
- echo All
- 执行该脚本,输出为:
- ./me
- bll
- all
4 条件判断
- if [ "$1" = "normal" ]
- then
- echo "this is normal case"
- elif [ -z "$1" ]
- then
- echo "no input, ignal..."
- fi
5 while [] ...do...donw 语句
- #!/bin/bash
- echo "please use add or delete or exit"
- ACTION="default"
- while [ -n $ACTION ]
- do
- read ACTION
- case $ACTION in
- add)
- echo "add somebody"
- ;;
- delete)
- echo "delete somebody"
- ;;
- exit)
- echo "complete"
- break
- ;;
- *)
- echo "invalide action, please re-enter"
- ;;
- esac
- done
6 for 循环
for 一般和in联合作用,用于从某个集合中逐个取出元素并对期进行操作,如下代码所示
- #!/bin/bash
- for X in 1 2 3 4 5 hello
- do
- echo $X
- done
再举一个
`符号是!符号左边的键。
- for X in `ls`
- do
- echo `basename $X`
- echo `dirname $X`
- done
- uname
for语句和if语句为例
功能:给当前目录下没有扩展名的文件加上 .txt扩展名
- #!/bin/bash
- #rename files without ext name to txt file.
- for X in `ls`
- do
- Base="`basename $X`"
- if [ -z `echo $Base | grep "\."` ]
- then
- `mv $Base $Base.txt`
- echo $Base
- fi
- done
7函数
- #!/bin/bash
- strcat()
- {
- OUT="$1"" ""$2"
- return 0
- }
- strcat2()
- {
- echo "$1"" ""$2"
- return 3
- }
- A="bird"
- B="mouse"
- OUT=""
- strcat $A $B
- echo $OUT
- OUT2=`strcat2 $A $B`
- echo $? #//上一个命令的返回结果
- echo $OUT2
- #执行该脚本,输出为:
- ./me
- bird mouse
- 3
- bird mouse
定义函数时,不需要定义参数,直接使用$1,$2代表第n个参数
可以使用return返回整数数值,不能返回字符串,不写return 默认是0
- shell脚本备忘
- shell脚本实例备忘
- Bash shell脚本备忘
- shell脚本备忘
- shell脚本备忘
- Shell 脚本(备忘)
- shell脚本备忘
- shell脚本基础(备忘)
- 备忘几个有用的shell脚本
- Shell 脚本条件判断的三中类型(备忘)
- shell脚本中位置参数 $0 $1 .. $* $#的备忘
- 工作备忘-制作Framework所用shell脚本代码
- shell备忘
- Android执行shell脚本命令(备忘记录与实际应用)
- ubuntu下shell脚本同时运行node server.js 和ionic serve 命令_备忘
- shell中expr备忘
- Linux shell 常用命令备忘
- shell break语句备忘
- hdu 1010 Tempter of the Bone
- tlb,lib,tlh,dll
- 跨浏览器的事件对象
- Bash特定的转义符的特殊的含义
- 如何做文献综述:克雷斯威尔五步文献综述法
- shell脚本备忘
- MySQL 深入剖析 char varchar 类型,有了VARCHAR,为什么还要有CHAR?
- 介绍javascript MVC框架 ---- angular
- 安装、设置与启动MySql绿色版的方法
- SQL Server 入门笔记(一)
- AsyncSocket
- java java.lang.Long详解之二 缓存
- SQL Server 入门笔记(二)
- myeclipse building workspace。导致程序变慢、卡死、不能正常操作的解决方案。