Shell编程笔记

Posted lakeslove

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell编程笔记相关的知识,希望对你有一定的参考价值。

#!/bin/bash
echo "Hello World !"

1、作为可执行程序

将上面的代码保存为 test.sh,并 cd 到相应目录:

chmod u+x ./test.sh  #使脚本具有执行权限
./test.sh  #执行脚本

2、作为解释器参数

这种运行方式是,直接运行解释器,其参数就是 shell 脚本的文件名,如:

/bin/sh test.sh
/bin/php test.php

使用变量

your_name="qinjx"
echo $your_name
echo ${your_name}
echo "I am good at ${your_name}Script"
readonly修饰为只读
unset 命令可以删除变量
unset variable_name

单引号字符串的限制:

  • 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
  • 单引号字串中不能出现单引号(对单引号使用转义符后也不行)。

双引号的优点:

  • 双引号里可以有变量
  • 双引号里可以出现转义字符

拼接字符串

your_name="qinjx"
greeting="hello, "$your_name" !"
greeting_1="hello, ${your_name} !"
echo $greeting $greeting_1

获取字符串长度用#

string="abcd"
echo ${#string} #输出 4
string="runoob is a great site"
echo ${string:1:4} # 输出 unoo
string="runoob is a great company"
echo `expr index "$string" is`  # 查找is,输出 8。脚本中 "`" 是反引号,而不是单引号 "‘"

数组

array_name=(value0 value1 value2 value3)
array_name[0]=value0
array_name[1]=value1
array_name[n]=valuen

读取数组的值

valuen=${array_name[n]}

使用@符号可以获取数组中的所有元素,例如:

echo ${array_name[@]}
# 取得数组元素的个数
length=${#array_name[@]}
# 或者
length=${#array_name[*]}

截取字符串

1. # 号截取,删除左边字符,保留右边字符。
echo ${var#*//}
其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符
即删除 http://
结果是 :www.aaa.com/123.htm
2. ## 号截取,删除左边字符,保留右边字符。
echo ${var##*/}
##*/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符
即删除 http://www.aaa.com/
结果是 123.htm
3. %号截取,删除右边字符,保留左边字符
echo ${var%/*}
%/* 表示从右边开始,删除第一个 / 号及右边的字符
结果是:http://www.aaa.com
4. %% 号截取,删除右边字符,保留左边字符
echo ${var%%/*}
%%/* 表示从右边开始,删除最后(最左边)一个 / 号及右边的字符
结果是:http:
5. 从左边第几个字符开始,及字符的个数
echo ${var:0:5}
其中的 0 表示左边第一个字符开始,5 表示字符的总个数。
结果是:http:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 





以上是关于Shell编程笔记的主要内容,如果未能解决你的问题,请参考以下文章

Shell编程笔记

Linux自学笔记——shell脚本编程

linux shell脚本编程笔记: 重定向

Linux学习笔记-Shell教程

一文详解shell编程(shell编程笔记)

shell if 语句