【Shell编程】1.Shell脚本、echo、Shell变量

目录

Shell脚本的特点

echo

代码1

test1_1.sh

运行

结果

Shell变量

定义变量

使用变量

修改变量的值

单引号和双引号的区别

命令结果赋值给变量

只读变量

删除变量

代码2

test1_2.sh

运行

结果

Shell脚本的特点

  1. 文件名的后缀一般是.sh

  2. 文件属性一般都是可执行文件。

  3. 文件内容的开头都是#!/bin/bash,其中“#!”是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell;后面的“/bin/bash”是指明了解释器的具体位置。

echo

输出内容、文字、字符串。

代码1

test1_1.sh

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

给予可执行权限。

chmod 777 test1_1.sh

 

运行

./test1_1.sh

结果

Shell变量

       在Shell编程中,每一个变量的值都是字符串,无论你给变量赋值时有没有使用引号,值都会以字符串的形式存储。 Shell在默认情况下不会区分变量类型,即使你将整数和小数赋值给变量,它们也会被视为字符串。

定义变量

Shell支持以下三种定义变量的方式:

变量名=值
variable=value
BianLiangMing1=aaa
变量名='值'
variable='value'
BianLiangMing2='bbb'
变量名="值"
variable="value"
BianLiangMing3="ccc"

注意:

  1. 如果值包含了空白符,那么就必须使用引号包围起来。

  2. 赋值号=的周围不能有空格。

使用变量

       使用一个已经定义了的变量,在变量名前面加美元符号$。 变量名外面的花括号{ }是可选的,可加可不加,加花括号是为了帮助解释器识别变量的边界。一般都给所有变量加上花括号{ } 。。

echo $BianLiangMing3
echo ${BianLiangMing3}
echo "BianLiangMing3=$BianLiangMing3AAA"
echo "BianLiangMing3=${BianLiangMing3}AAA"

修改变量的值

BianLiangMing3="ccc1"
echo ${BianLiangMing3}

注意: 第二次对变量赋值时不能在变量名前加$。

单引号和双引号的区别

        以单引号' '包围变量的值时,单引号里面是什么就输出什么,即使内容中有变量和命令(命令需要反引起来)也会把它们原样输出。这种方式比较适合定义显示纯字符串的情况,即不希望解析变量、命令等的场景。

        以双引号" "包围变量的值时,输出时会先解析里面的变量和命令,而不是把双引号中的变量名和命令原样输出。这种方式比较适合字符串中附带有变量和命令并且想将其解析后再输出的变量定义。

string1='单引号:string1=BianLiangMing3=${BianLiangMing3}...'
string2="双引号:string2=BianLiangMing3=${BianLiangMing3}..."
echo ${string1}
echo ${string2}

命令结果赋值给变量

Shell编程中,将命令的执行结果赋值给变量,有以下两种方式:

变量名=`执行的命令`
variable=`command`
BianLiangMing4=`cat temp1_1.txt`
变量名=$(执行的命令)
variable=$(command)
BianLiangMing5=$(cat temp1_1.txt)

第二种方式较常用。

只读变量

使用readonly命令可以将变量定义为只读变量,只读变量的值不能被改变。

BianLiangMing6="ddd"
readonly BianLiangMing6
BianLiangMing6="ddd1"

删除变量

使用unset命令删除变量。

unset 变量名
unset variable_name
unset BianLiangMing6

代码2

test1_2.sh

#!/bin/bash

echo "**********变量定义**********"
BianLiangMing1=aaa
BianLiangMing2='bbb'
BianLiangMing3="ccc"
echo "---------------------------------------"
echo ""

echo "**********使用变量**********"
echo $BianLiangMing3
echo ${BianLiangMing3}
echo "BianLiangMing3=$BianLiangMing3AAA"
echo "BianLiangMing3=${BianLiangMing3}AAA"
echo "---------------------------------------"
echo ""

echo "********修改变量的值********"
BianLiangMing3="ccc1"
echo ${BianLiangMing3}
echo "---------------------------------------"
echo ""

echo "*****单引号和双引号的区别*****"
string1='单引号:string1=BianLiangMing3=${BianLiangMing3}...'
string2="双引号:string2=BianLiangMing3=${BianLiangMing3}..."
echo ${string1}
echo ${string2}
echo "---------------------------------------"
echo ""

echo "******命令结果赋值给变量******"
BianLiangMing4=`cat temp1_1.txt`
BianLiangMing5=$(cat temp1_1.txt)
echo "使用\`\`"
echo ${BianLiangMing4}
echo "使用\$()"
echo ${BianLiangMing5}
echo "---------------------------------------"
echo ""

echo "***********只读变量***********"
BianLiangMing6="ddd"
readonly BianLiangMing6
BianLiangMing6="ddd1"
echo ${BianLiangMing6}
echo "---------------------------------------"
echo ""

echo "***********删除变量***********"
BianLiangMing7="eee"
unset BianLiangMing7
echo ${BianLiangMing7}
echo "---------------------------------------"
echo ""

给予可执行权限。

chmod 777 test1_2.sh

 

运行

./test1_2.sh

结果

 

  • 20
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

因心,三人水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值