共计 1639 个字符,预计需要花费 5 分钟才能阅读完成。
导读 | Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。 |
1: 编写 shell 脚本
vi test.sh
#!/bin/bash #指定这个脚本需要什么解释器来执行
echo "Hello World !" # echo 命令用于向窗口输出文本
2: 执行 shell 脚本
cd 入文件存在的目录
chmod +x ./test.sh #使脚本具有执行的权限
./test.sh #执行脚本
3:Shell 变量的理解
例子: your_name="wangzhi.cn"
注意: 变量名和等号之间不能有空格
规则:
(1). 首字母必须为字母 (a-z,A-Z)
(2). 中间不能有空格, 可以使用 (_)
(3). 不能使用标点符号
(4). 不能使用 bash 中的关键字 (可以使用 help 命令查看保留关键字)
例子:for file in `ls /etc` 这个语句可以将 /etc 下目录的文件名循环出来
4: 变量的使用
定义变量:your_name = "wangzhi"
使用变量:echo ${your_name} # 建议输出变量加上 {}, 养成好的编程习惯.
5:Shell 字符串 (注意注意: 下标是从 0 开始计算的)
单引号:
str = 'This is a string' ( 限制:
单引号中的任何字符都会原样输出, 单引号中无法输出变量;
单引号中不能出现单引号 )
双引号:
str = "Hello, I know your are \"${your_name}\"!\n"
(双引号内可以有变量; 双引号内可以有转义字符)
字符串拼接:
your_name="qinjx"
greeting="hello,"$your_name"!"
greeting_1="hello, ${your_name} !"
echo $greeting $greeting_1
获取字符串长度:
string="abcd"
echo ${#string} #输出 4
提取字符串
string="alibaba is a great company"
echo ${string:1:4} #输出 liba, 字符串的下标是从 0 开始的
查找子字符串 (下标从 1 开始计算)
string="alibaba is a great company"
echo `expr index "$string" is`
#!/bin/bash
your_name="wangzhi"
echo ${your_name}
str='This is a String'
echo "单引号字符串 :${str}" # 拼接都可以这样写, 下面的写法是被误导的
str2="Hello, I know you are \"${your_name}\"!\n"
echo "双引号字符串 : \" ${str2}\"\n"
greet="Hello, ${your_name} !"
echo "字符串拼接 : \" ${greet}\"\n"
echo "获取字符串长度 : \"${#greet}\"\n" # 0~length-1, 与 java 中相同
echo "提取字符串 : \"${greet:1:4}\"\n" # 下标从 0 开始, 从 1 开始计算 4 个
echo "查找子字符串 : \n"
echo `expr index "${greet} hello"` # 下标是从 1 开始计算的
6:Shell 数组 (可以存放各种数据类型, 下标从 0 开始)
定义:${数组名 [ 下标]} 例如: valuen = ${array_name[n]}
使用 @符号可以获取数组中的所有元素, 例如:echo ${array_name[@]}
获取数组长度:
# 取得数组元素的个数
length=${#array_name[@]}
# 或者
length=${#array_name[*]}
# 取得数组单个元素的长度
lengthn=${#array_name[n]}
7: 注释
只有单行注释 —-(使用 # 进行注释)
正文完
星哥玩云-微信公众号