1.变量赋值方式有哪些?
一、变量的定义:
变量名的命名规则:
1、命名的名字要有意义
2、字母、数字、下划线
3、不以数字开头
二、变量的赋值:
变量赋值的过程,称为变量替换。
1.变量名=变量值:
a=123
将123数字赋值给a变量
# 将123数字赋值给a变量
[root@192 ~]# a=123
[root@192 ~]# echo $a
123
2.使用let为变量赋值:
let a=10+20
使用let将运算结果赋值给变量a
# 使用let将运算结果赋值给变量a
[root@192 ~]# let a=10+20
[root@192 ~]# echo $a
30
注意:shell 脚本运算的性能会很低
3.将命令赋值给变量:
l=ls
将ls命令赋值给变量l
# 将ls命令赋值给变量l
[root@192 ~]# l=ls
[root@192 ~]# echo $l
ls
4.将命令结果赋值给变量,使用**$()**:
使用$()命令结果赋值给变量
# 使用$()命令结果赋值给变量
[root@192 ~]# string=$(ls /etc)
[root@192 ~]# echo $string
adjtime aliases aliases.db alsa alternatives anacrontab asound.conf at.deny audit authselect avahi bash_completion.d bashrc
5.变量值有空格等特殊字符可以包含在 " " 中:
使用"" 符号将值含有空格或特殊符号进行包含起来
# 使用"" 符号将值含有空格或特殊符号进行包含起来
[root@192 ~]# string1="hello bash"
[root@192 ~]# echo $string1
hello bash
注意:赋值操作变量的等号(=)两侧不允许出现空格。
6.使用declare -i
[root@192 ~]# declare -i s=2+3
[root@192 ~]# echo $s
5
错误示例
[root@192 ~]# a = 123
bash: a: 未找到命令...
[root@192 ~]#
-
$*和 $@的区别?
在linux shell脚本中经常用到字符 , 下 面 是 ,下面是 ,下面是的一些常见用法
名称 含义
$0 当前脚本的文件名
$n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是1,第二个参数是 1,第二个参数是2。
$# 传递给脚本或函数的参数个数。
$* 传递给脚本或函数的所有参数。
$@ 传递给脚本或函数的所有参数。被双引号(” “)包含时,与 $* 稍有不同,下面将会讲到。
$? 上个命令的退出状态,或函数的返回值。
$$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。
3.算数运算命令有哪几种?
在shell中算术运算方法有几种
1.expr
[root@192 ~]# s=`expr 4-1`
[root@192 ~]# echo $s
3
2.let
[root@192 ~]# let d=2-1
[root@192 ~]# echo $d
1
3.$[] 和 $(())
[root@192 ~]# s1=$((1+1))
[root@192 ~]# echo $s1
2
[root@192 ~]# s2=$[1+2]
[root@192 ~]# echo $s2
3
4.bc计算器
[root@192 ~]# s3=`echo 1+1 | bc`
[root@192 ~]# echo $s3
2
4.定义变量url=https://blog.youkuaiyun.com/weixin_45029822/article/details/103568815
1)截取网站访问的协议
2)截取网站访问账号信息
[root@192 ~]# vim 04.sh
#!/bin/bash
url=https://blog.youkuaiyun.com/weixin_45029822/article/detaile/102568814
echo $url | cut -d : -f 1
echo $url | cut -d / -f 4
[root@192 ~]# bash 04.sh
https
weixin_45029822
5.写一个脚本要求传入用户参数,通过脚本判断该用户用户是否存在,如果存在这显示用户已存在,如果不存在则创建该用户并给该用户设置密码为redhat,同时在终端输出用户成功创建。
[root@192 ~]# vim 05.sh
#!/bin/bash
#$1位置参数,取输入的第一个参数
id $1 &>/dev/null && echo "user exist" || (useradd $1 &>/dev/null; echo redhat | passwd --stdin $1 &>/dev/null; echo "Successful")
[root@192 ~]# bash 05.sh
user exist