变量的赋值

1.变量的赋值
面试点:变量赋值的五种方法
(1)显示赋值(直接赋值)
简单实例:

[root@bogon ~]# ip=192.168.150.128
[root@bogon ~]# echo $ip
192.168.150.128
[root@bogon ~]# name=chenchen
[root@bogon ~]# echo $name
chenchen

(2)使用read命令赋值

#! /bin/bash

read -p "请输入一个变量值:" hostname
echo $hostname

添加执行权限,查看执行结果
[root@bogon ~]# chmod +x variable4.sh
[root@bogon ~]# ./variable4.sh 
请输入一个变量值:chen.com.cn
chen.com.cn

Linux read命令用于从标准输入读取数值。

read 内部命令被用来从标准输入读取单行数据。这个命令可以用来读取键盘输入,当使用重定向的时候,可以读取文件中的一行数据。

语法
read [-ers] [-a aname] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]

参数说明:

-a 后跟一个变量,该变量会被认为是个数组,然后给其赋值,默认是以空格为分割符。
-d 后面跟一个标志符,其实只有其后的第一个字符有用,作为结束的标志。
-p 后面跟提示信息,即在输入前打印提示信息。
-e 在输入的时候可以使用命令补全功能。
-n 后跟一个数字,定义输入文本的长度,很实用。
-r 屏蔽\,如果没有该选项,则\作为一个转义字符,有的话 \就是个正常的字符了。
-s 安静模式,在输入字符时不再屏幕上显示,例如login时输入密码。
-t 后面跟秒数,定义输入字符的等待时间。
-u 后面跟fd,从文件描述符中读入,该文件描述符可以是exec新开启的。

(3)使用命令行参数进行赋值(位置参数或环境变量)
1.使用位置参数
简单例子:

#! /bin/bash

#使用位置参数给变量赋值

echo "请输入三个位置参数: $1 $2 $3"
a=$1
b=$2
c=$3
echo "输出变量a,b,c的值为:$a,$b,$c"

添加执行权限,查看执行结果
[root@bogon ~]# chmod +x variable5.sh 
[root@bogon ~]# ./variable5.sh 1 2 3
请输入三个位置参数: 1 2 3
输出变量a,b,c的值为:1,2,3
[root@bogon ~]# ./variable5.sh 6 7 8
请输入三个位置参数: 6 7 8
输出变量a,b,c的值为:6,7,8

2.使用环境变量

	[root@bogon ~]# cat variable6.sh 
#! /bin/bash

#使用环境变量,给变量赋值

#方法一:先直接赋值后,在使用关键字export将其转化成环境变量
back_dir=/home/backup
export back_dir
echo $back_dir
#方法二:直接使用export关键字
export back_dir1=/home/hao
echo $back_dir1

添加执行权限,查看执行结果
[root@bogon ~]# vim variable6.sh
[root@bogon ~]# chmod +x variable6.sh 
[root@bogon ~]# ./variable6.sh 
/home/backup
/home/hao

(4)使用命令的输出结果进行赋值
简单例子

#! /bin/bash

var='ls -l'
echo $var
var1='cat /etc/passwd | grep root'
echo $var1
添加执行权限,查看执行结果
[root@bogon ~]# chmod +x variable7.sh
[root@bogon ~]# ./variable7.sh 
-rwxr-xr-x. 1 root root 1002 1月 4 19:11 variable2.sh -rwxr-xr-x. 1 root root 116 1月 4 20:04 variable3.sh -rwxr-xr-x. 1 root root 75 1月 5 11:54 variable4.sh -rwxr-xr-x. 1 root root 153 1月 5 12:08 variable5.sh -rwxr-xr-x. 1 root root 277 1月 5 12:18 variable6.sh -rwxr-xr-x. 1 root root 98 1月 5 12:30 variable7.sh -rwxr-xr-x. 1 root root 50 1月 4 19:05 variable.sh
root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin

(5)从文件中读取
简单例子:

#!/bin/bash
 
ls *.sh >execfile
 
while read LINE
 
do
 
chmod a+x $LINE
 
done<execfile

2.变量的变量和引号之间的关系
(1)单引号
单引号括起来的字符都作为普通字符出现
(2)双引号
双引号括起来的字符,除“$”,“\”," ’ “,” ’ "这几个字符保留原本含义,其他字符仍然作为普通字符。
(3)反引号
反引号括起来的字符,被shell解释为命令,在执行时,shell首先执行该命令,并以它的标准输出结果取代整个反引号部分。
简单例子区分:

#! /bin/bash

echo "请输出系统管理员: $USER"

echo '请输出系统管理员: $USER'

echo "请输出当前路径: `pwd`"

echo '请输出当前路径: `pwd`'

添加执行权限,查看执行结果
[root@bogon ~]# vim variable9.sh
[root@bogon ~]# chmod +x variable9.sh 
[root@bogon ~]# ./variable9.sh 
请输出系统管理员: root
请输出系统管理员: $USER
请输出当前路径: /root
请输出当前路径: `pwd`
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐