shell
2016-03-16 09:48
477 查看
“#!” 是一个约定的标记,告知系统哪种shell
环境变量
shell变量
单引号内不能有变量,双引号内可以有变量
双引号可以使用转义字符
大多数情况下
输出
#!/bin/bash echo "Hello World !"
注释
#------------- # 注释使用 # #-------------
变量
变量名和等号之间不能有空格使用变量
前加$, 可以外加{}区分界限name="bash" echo $name echo ${name}
只读变量
使用 readonlyurl="http://blog.csdn.net/shimingliabc" readonly url
删除变量
使用 unset, unset命令不能删除只读变量unset url
变量类型
局部变量环境变量
env printenv
shell变量
Shell字符串
引号
单双引号区别同php单引号内不能有变量,双引号内可以有变量
双引号可以使用转义字符
name='blog' str="hello, ${name}"
拼接
直接拼接,不需要运算符name="linux" greeting="hello, "${name}" !"
长度
str="linux" echo ${#str} #4
提取子字符串
str="alibaba" echo ${str:1:4} #liba
查找子字符串
string="alibaba is a great company" echo `expr index "$string" is` #3
数组
数组名=(值1 值2 ... 值n)
读取元素
${数组名[下标]} ${arr[@]} #@可以获取所有元素
数组长度
len=${#arr[@]} #或者 len=${#arr[*]}
脚本参数
参数 | 说明 |
---|---|
$0 | 脚本名称 |
$# | 参数个数 |
$* | 将所有参数视为一个字符串 |
$$ | 脚本运行的当前进程id |
$! | 后台运行的最后一个进程id |
$@ | 同$*, 但将参数视为数组 |
$- | shell的当前选项 |
$? | 显示命令退出状态,0表示没错误 |
echo $1 #第1个参数 echo $2 #第2个参数 echo $@ #所有参数
大多数情况下
$@与
$*没有区别。但在for循环时,可看出
$*视为一个整体,但
$@视为一个数组。
for pts in "$@" do echo -n "$pts, " done echo for pts in "$*" do echo -n "$pts, " done
输出
sh paras.sh hello world 123 456 #调用
相关文章推荐
- 一个简单的遍历选定目录的PowerShell脚本
- shell脚本编程基础(1)及RAID阵列
- shell空数组
- shell二维数组
- shell一维数组
- 执行shell的时候开启调试模式
- SecureCRT连接Linux,操作HBase shell,不用使用Backspace键的设置方法
- Windows 10 IoT Raspberry Pi 2 相关PowerShell命令
- /bin/bash
- 高性能平台上提交任务的两种方式
- Hbase的shell命令
- 排序算法——shell排序
- 排序算法——shell排序
- bash脚本编程(一)
- Linux笔记(46)——bash变量
- bash脚本编程实践总结(图文)
- shell之进程管理
- shell之文本编辑
- shell之调试&分析
- Linux学习6之shell筛选当前目录下文件并逐个对其进行操作