Shell脚本基础

一、Shell脚本基础元素

        将一系列经常需要使用的命令,把它存储在一个文件里,shell可以读取这个文件并顺序执 行其中的命令,我们把这样的文件就叫shell脚本。shell脚本按行解释文件里的命令。

基本元素:

        1.声明:声明用哪个命令解释器来解释并执行当前脚本文件中的语句,一般写的解释器为 #!/bin/bash

        2.命令:可执行语句,实现程序的功能。

        3.注释:说明某些代码的功能,通过在代码中增加注释可以提高程序的可读性。

        单行注释: # + 注释内容

        多行注释::<<BLOCK  ...注释内容     BLOCK

        4.赋予rx的权限

 内部命令echo:

        echo   用于终端打印的基本命令,默认情况下,echo 在每次调用后会添加一个换行符

        echo命令使用双引号和单引号的区别:

                [root@kittod ~]# echo "the current directory is `pwd`"

                the current directory is /root

                [root@kittod ~]# echo 'the current directory is `pwd`'

                the current directory is `pwd`

                [root@kittod ~]# echo "hehe;hehe"

                hehe;hehe

                [root@kittod ~]# echo hehe;hehe

                hehe

                -bash: hehe: command not found

echo参数选项说明
 -n   不换行输出内容
 -e   

解析转义字符

转义字符 说明 \n 换行
 \r   回车
 \t 制表符 
 \b 退格
 \v 纵向制表符
#设置字体颜色
[root@kittod ~]# echo -e "\e[1;31m This is red test \e[0m"
This is red test
\e[1;31m 将颜色设置为红色, \e[0m 将颜色重置,使用时只需要更换颜色代码即可
颜色代码
重置 0
黑色 30
红色 31
绿色 32
黄色 33
蓝色 34
洋红 35
青色 36
白色 37

#设置背景颜色
[root@kittod ~]# echo -e "\e[1;42m This is red test bg \e[0m"
This is red test bg
颜色代码
重置 0
黑色 40
红色 41
绿色 42
黄色 43
蓝色 44
洋红 45
青色 46
白色 47

#export设置或者显示环境变量
[root@kittod ~]# mingzi=hehe
[root@kittod ~]# echo $mingzi
hehe
[root@kittod ~]# bash
[root@kittod ~]# echo $mingzi
[root@kittod ~]# exit
exit
[root@kittod ~]# export mingzi
[root@kittod ~]# bash
[root@kittod ~]# echo $mingzi
hehe
read 命令:

        read命令可从标准输入读取字符串等信息,传给shell程序内部定义的变量。read 是一个重要的 bash 命令,用于从键盘或标准输入读取文本,我们可以使用 read 命令以交互 形式读取来自用户的输入。其中:-p prompt:设置提示信息 ;-t timeout:设置输入等待时间,单位默认为秒。

二、执行脚本的方法

(1)bash ./filename.sh(产生子进程,再运行,使用当前指定的bash shell去运行) (2)./filename.sh(产生子进程,再运行,使用脚本里面指定的shell去运行。使用该种方式执行需要x 权限)

(3)source ./filename.sh(source命令是一个shell内部命令,其功能是读取指定的shell程序文件,并 且依次执行其中的所有的语句,并没有创建新的子shell进程,所以脚本里面所有创建的变量都会保存到 当前的shell里面)

(4). filename.sh(和source一样,也是使用当前进程执行) 

        执行shell脚本时,如果使用1和2这种方式执行会在当前的进程下产生一个新的bash子进程,所以子进程 切换到了/tmp目录,当脚本结束,子进程也就结束了,所以当前进程的目录不会发生变化;3和4方式执 行时,不会产生新的进程,所以脚本执行结束后当前的目录会变成/tmp。

[root@localhost test]# echo 'userdir=`pwd`' > test3.sh
[root@localhost test]# cat test3.sh
userdir=`pwd`
(1)[root@localhost test]# bash test3.sh
[root@localhost test]# echo $userdir
[root@localhost test]#
(2)[root@localhost test]# chmod a+rx test3.sh
[root@localhost test]# ./test3.sh
[root@localhost test]# echo $userdir
[root@localhost test]#
(3)[root@localhost test]# source test3.sh
[root@localhost test]# echo $userdir
/test
(4)[root@localhost test]# . test3.sh
[root@localhost test]# echo $userdir
/test

  • 18
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值