今天开始学习shell语言
Shell 脚本
Shell 脚本(shell script),是一种为 shell 编写的脚本程序。
业界所说的 shell 通常都是指 shell 脚本,但读者朋友要知道,shell 和 shell script 是两个不同的概念。
由于习惯的原因,简洁起见,本文出现的 “shell编程” 都是指 shell 脚本编程,不是指开发 shell 自身。
Shell脚本入门
Shell echo命令
Shell 的 echo 指令与 PHP 的 echo 指令类似,都是用于字符串的输出。命令格式:
echo string
可以使用echo实现更复杂的输出格式控制。
第一个shell脚本:
打开终端
创建并打开vim helloworld.sh
编辑第一个脚本:
echo “helloworld”
运行shell脚本有三种方式:
vim touch.sh
#!/bin/bash
cd /home/df/桌面
touch baz.txt
echo "I love xiaowugui" >>baz.txt #">>是把编译的内容追加到指定文件"
:wq #退出并保存
然后执行 sh.touch.sh,会发现桌面上会多出来一个baz.txt 打开Vi baz.txt会发现输出语句
“ I love xiaowugui”
上面的多命令分为四步:
先进入到cd /home/df/桌面
然后创建touch baz.txt
输出语句echo “I love xiaowugui”
最后追加到echo “I love xiaowugui” >>baz.txt
自定义变量
一:基础语法
定义变量:变量=值;
a=2
echo $a
输出2
有人说我不想用这个变量了怎么办
unset [变量名] 进行删除
声明静态变量:readonly ss=2 静态变量不能使用unset删除
readonly ss=2
echo $ss
输出2
unset ss
bash: unset: ss:无法取消设定: 只读 variable
Shell变量命名规则
变量名必须是以字母或下划线字符“_”开头,后面跟字母、数字或下划线字符。不要使用?、*或其他特殊字符命名你的变量。
注意:
变量名和等号之间不能有空格;
首个字符必须为字母(a-z A-Z)
中间不能有空格,可以是下划线
不能使用标点符号
变量里的空格需要用“”隔开
不能使用bash里的关键字
二:如何把变量提升到全局变量,可供其他程序使用
export [变量名]:让这个变量升级为全局变量让其他程序也可以使用
#先定义变量D
D=1
#然后再编辑C
vim c.sh
echo = "helloworld"
echo $D
#将B放入c中
#然后输出C
echo $C
#结果只有helloworld
export D
#再输出C
echo $C
helloworld
1
以上就是全局变量的用法
1.基本语法
$n(功能描述:n为数字,$0代表该脚本名称,$1- 9 代 表 第 一 到 第 九 个 参 数 , 十 以 上 的 参 数 需 要 用 大 括 号 包 含 , 如 9代表第一到第九个参数,十以上的参数需要用大括号包含,如 9代表第一到第九个参数,十以上的参数需要用大括号包含,如{10})
#1.输出该脚本文件名称,输入参数1和输入参数2的值
$touch parameter.sh $vim parameter.sh
#! /bin/bash echo “$0 $1 $2 $3”
$ chmod 777 parameter.sh
运行此脚本:bash parameter.sh 则结果为paramerter.sh
命令:bash parameter.sh a 则结果paramerter.sh a
#依次类推,命令parameter.sh a b c d 则结果:parameter.sh a b c 不显示第四个参数
1)基本语法:$#(功能描述:获取所有输入参数个数,常用于循环)
(2)案例实操:获取输入参数的个数
$vim parameter.sh
#/bin/bash
echo “$0 $1 $2”
echo $#
获取权限:Chmod 777 parameter.sh
执行脚本:./parameter.sh a b
结果:parameter.sh a b 2
∗ ( 功 能 描 述 : 这 个 变 量 代 表 命 令 行 中 所 有 的 参 数 , *(功能描述:这个变量代表命令行中所有的参数, ∗(功能描述:这个变量代表命令行中所有的参数,*把所有的参数看成一个整体)
@ ( 功 能 描 述 : 这 个 变 量 也 代 表 命 令 行 中 所 有 的 参 数 , 不 过 @(功能描述:这个变量也代表命令行中所有的参数,不过 @(功能描述:这个变量也代表命令行中所有的参数,不过@把每个参数区分对待)
(1)基本语法:$?(功能描述:最后一次执行的命令的返回状态。如果这个变量的值为0,则证明上一个命令正确执行;如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确)
(2)案例实操:判断helloworld.sh脚本是否执行正确
#执行脚本
./helloworld.sh
#结果为:
hello world
#输入命令:
echo $?
显示结果为0 就是执行正确,非0,则不正确
以 # 开头的行就是注释,会被解释器忽略。
通过每一行加一个 # 号设置多行注释,像这样:
#--------------------------------------------
#这是一个注释
#author:菜鸟教程
#site:www.runoob.com
#slogan:学的不仅是技术,更是梦想!
#--------------------------------------------
#####用户配置区 开始 #####
#
#
#这里可以添加脚本描述信息
#
#
#####用户配置区 结束 #####
多行注释
多行注释还可以使用以下格式:
:<
EOF 也可以使用其他符号:
:<<'
注释内容...
注释内容...
注释内容...
'
:<