博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
学习之shell脚本
阅读量:6093 次
发布时间:2019-06-20

本文共 1302 字,大约阅读时间需要 4 分钟。

第一行:#!/bin/bash  --> #! 标记脚本的解释器

脚本: #!/bin/bash

    echo "hello world"

赋予执行权限 chmod +x ./test.sh

执行脚本:./test.sh

定义变量时不需要 $ 符号 :td='date "+%y%m%d"'

1.变量名和符号之间不能有空格

2.首个字符必须为字母
3.中间不能有空格,可以使用划线(_)
4.不能使用标点符号和 bash 中的关键字

除了显示赋值,还可用语句直接给变量赋值

for file in 'ls /etc' 将 /etc目录下的文件名循环出来

使用一个定义过的变量,只需在变量名前加上 $ 符号即可 echo $td 或 echo ${td}

对同一个变量名,可以进行二次赋值 eg: td='date "+%m%d"'

只读变量:readonly 定义变量为只读变量,变量值不可更改

url="http://www.baidu.com"

readonly url

url="http://www.tx.com" --> 报错

删除变量: unset variable_nae,不能删除只读变量

shell存在三种变量:①局部变量:脚本或命令中定义,仅在当前脚本有效

          ②环境变量:所有程序有效
          ③shell变量:由shell程序设置的变量,有局部也有环境

单引号字符串中不能有变量,不能做字符转义,双引号可以实现。

your_name="world"

拼接字符串 greeting="hello,${your_name} !" 

获取字符串长度 ${#greeting} 

提取1—4的字符串,下标从0开始 ${#greeting:1:4} 

查找字符串 $(expr index "${greeting}" world)

反引号用于命令替换:td=`date "+%y%m%d"` 等同于 $(date "+%y%m%d")

./test.sh 1 2 3

执行的文件名:$0  --> ./test.sh

第一个参数为:$1  --> 1

第二个参数为:$2  --> 2

第三个参数为:$3  --> 3

参数的个数为:$# --> 3

脚本运行的当前进程ID:$$ -->8010

显示所有传递的参数:$*  -->1 2 3

$* 与 $@ 的区别:$* 等价于 “1 2 3” ,相当于传递了一个参数,$@ 等价于 “1” “2” “3” 相当于传递了三个参数

shell数组:array_name=(value1 ... valuen) --> my_array=(A B "C" D)

读取数组元素:${array_name[index]}

获取所有数组元素: ${array_name[*]} 或 ${array_name[@]} 

获取数组长度: ${#array_name[*]} 或 ${#array_name[@]} 

Shell 基本运算符:

 

转载于:https://www.cnblogs.com/jewhone/p/6801067.html

你可能感兴趣的文章
Exchange Server 2003 SP2 数据存储大小限制修改
查看>>
expr命令用法-实例讲解
查看>>
酷派8705救砖
查看>>
iOS10里的通知与推送
查看>>
# C 语言编写二进制/十六进制编辑器
查看>>
EMS SQL Management Studio for MySQL
查看>>
我的友情链接
查看>>
做母亲不容易
查看>>
详细的文档(吐槽)
查看>>
DEVEXPRESS 随记
查看>>
Ember.js 入门指南——{{action}} 助手
查看>>
VMware下安装QT Creator
查看>>
Linux时间同步设置
查看>>
Measure Graphics Performance
查看>>
RetrunMoreRow
查看>>
Redis学习笔记(3)-Hash
查看>>
Git使用的常用命令
查看>>
微软职位内部推荐-Senior Software Engineer
查看>>
多线程开发
查看>>
成功搞定一个通用的Extjs增删改查模块
查看>>