Shell 变量

变量

shell编程中分为两种变量
第一种是我们自己定义的变量(自定义变量)
第二种是Linux已定义的环境变量(环境变量, 例如 $PATH,$HOME等,这类变量我们可以直接使用)

下面演示了自定义变量和系统环境变量的用法,使用很简单,就是使用 $ 符号加上变量名就行了。记住:定义变量不用 $ 符号,使用变量要加 $ 就行了。我们在自定义变量时,使用了双引号,在 shell 编程中, 如果变量出现空格或者引号,那么也必须加引号, 否则就可以省略。还有一点需要注意,定义变量的时候,"=" 左右千万不要有空格啊。

#!/bin/bash

# 使用环境变量
echo $PATH

# 自定义变量hello
hello="hello world"
echo $hello

使用变量 

变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界

your_name="qinjx"
echo $your_name
echo ${your_name}

A=B
echo $AB
# 原本是打算先将变量 $A 的结果输出,然后再补一个 B 字母于其后,
# 但在命令行上,真正的结果却是空,因为没有AB这个变量

若使用 ${ } 就没问题了:
echo ${A}B
BB

 将linux命令执行结果赋值给变量

#!/bin/bash

date=$(date +%Y%m%d)
date_2=`date +%Y%m%d%H%M%S`

echo today is: $date
echo today is: $date_2

字符串 

字符串可以用单引号,也可以用双引号,也可以不用引号。单双引号的区别跟PHP类似。

单引号字符串的限制:

单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用。

your_name="alice"

# 使用双引号拼接
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, alice ! hello, alice !
hello, alice ! hello, ${your_name} !

 获取字符串长度

string="abcd"
echo ${#string}

# 输出
4

提取字符串
以下实例从字符串第 2 个字符开始截取 4 个字符: 

string="runoob is a great site"
echo ${string:1:4} 

# 输出
unoo

查找子字符串
查找字符 i 或 o 的位置(哪个字母先出现就计算哪个): 

string="runoob is a great site"
echo `expr index "$string" io`

# 输出
4

打印输出

普通字符串

echo "It is a test"

# 双引号完全可以省略
echo It is a test

# 显示转义字符
echo "\"It is a test\""

# 显示变量
name="luanpeng"
echo "$name It is a test" 

# -e 开启转义
echo -e "OK! \n"

# -e 开启转义 \c 打印后不换行
echo -e "OK! \c"

# 显示结果定向至文件
echo "It is a test" > myfile

# 显示命令执行结果
echo `date`

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值