一、第一个shell
1)实例
#!/bin/bash
echo "Hello World !"
#!是一个约定的标记,每个shell的开头都要有这个标记,后面的信息是告诉系统用哪一种shell来执行脚本;
尽量选择/bin/bash,其他的可能存在问题;
echo 命令用于向窗口输出文本。
2)执行脚本
首先需要给脚本添加权限:
// 以下两种方式都可以
$ chmod +x ./test.sh #使脚本具有执行权限
$ sudo chmod 777 /test.sh
之后输入如下命令执行脚本:
$ ./test.sh #执行脚本
二、变量
1)声明赋值
shell变量不需要特别声明,赋值即可用,类似于matlab,但是其赋值具有一定的特色,对于空格有明显的要求,变量赋值方法如下:
a=2 #正确
a = 2 #错误,"="两边都不能有空格
2)使用
想要在shell中使用变量a,只需要在前面加上符号$,当然,在有必要的情况下还需给变量加上{ },因为shell的空格规则,这样做可以让系统识别出变量的边界,见下例:
echo $a //输出名为a的变量
echo ${a} //输出名为a的变量
echo$ab //输出名为ab的变量
echo ${a}b //可以识别名为a的变量,当然这么写存在问题
3)字符串
- 字符串可以用单引号和双引号表示,双引号中的字符串可以识别出转义字符;
- 字符串拼接不要加空格;
####################shell内容####################
your_name="runoob"
# 使用双引号拼接
greeting="hello, "$your_name" !"
greeting_1="hello, ${your_name} !"
echo $greeting $greeting_1
# 使用单引号拼接
greeting_2='hello, '$your_name' !'
greeting_3='hello, ${your_name} !'
echo $greeting_2 $greeting_3
####################输出结果####################
hello, runoob ! hello, runoob !
hello, runoob ! hello, ${your_name} !
获取字符串的长度:
string="abcd"
echo ${#string} #输出 4
提取子字符串:
string="runoob is a great site"
echo ${string:1:4} #输出 unoo
三、其他
1)特殊变量汇总
含义 | 变量 | 输出 |
---|---|---|
ubuntu版本 | $(lsb_release -r --short) | 18.04 |
用户名 | ${USER} | shawlee |
主目录 | ${HOME} | /home/shawlee |
shell版本 | ${SHELL} | /bin/zsh |
当前目录 | ${PWD} | 在终端输入pwd |