变量和重定向
变量和重定向应用到我们的 linux shell 脚本当中,在shell脚本当中起到关键性的作用,如果没有变量和重定向的应用我们写起脚本来就是非常困难的一件事:在我们的脚本当中无时无刻都会有他们的身影,熟练他们俩的使用方法,可使我们写脚本的效率以及效果达到事半功倍。
变量
预定义变量
$0 脚本名
$* 所有的参数
[email protected] 所有的参数
$# 参数的个数
$$ 当前进程的 PID
$? 上一个命令的返回值 0表示成功
$! 上一个后台进程的PID
bash 的预置变量理解
[[email protected] /test]# vim echo.sh
#!/bin/bash
echo "脚本名 $0"
echo "您输入所有的参数 $*"
echo "您输入所有的参数 [email protected]"
echo "您输入参数的个数 $#"
echo "您当前进程PID $$"
echo "上一个命令的返回值 $?"
echo "上一个后台进程PID $!"
变量输出结果
[[email protected] /test]# ./echo.sh who #当前位置下执行脚本 "echo.sh",支配的命令是 “who”
脚本名 ./echo.sh
您输入所有的参数 who
您输入所有的参数 who
您输入参数的个数 1
您当前进程PID 63426
上一个命令的返回值 0
上一个后台进程PID
数值判断
# -ne -eq -gt -lt -ge -le
# 不等 相等 大于 小于 大于等于 小于等于
重定向
- 输入重定向:
write: 给某个在线的终端/用户 发信息
wall: 广播信息给所有 在线终端
ctrl + D 发送信息
write: 给某个在线的终端/用户 发信息
[[email protected] /test]# write rosen1 #写给rosen1用户,如果换成zan3那就是单独发给zan3其他用户不会受影响
hello
hellox2
注意:针对的是,指定当前用户并且有在线登陆,或者终端;发送信息才会收到
[[email protected] ~]$
Message from [email protected] on pts/0 at 17:58 ...
hello
hellox2
wall: 广播信息给所有 在线终端
[[email protected] /test]# vim abc #在文件abc里面写入要广播的内容
[[email protected] /test]# wall < /test/abc #把abc文件里面的内容进行广播
[[email protected] /test]#
Broadcast message from [email protected] (Sat Aug xx xx:05:54 2018):
hello I am a radio wall
注意:广播针对的是所有用户以及终端。把文件写成脚本运用重复循环加上 “sleep” 睡眠可以无限循环广播,不过这样做实用性不大,不建议使用,看需求决定。
- 输入重定向: << 追加输入
重写配置文件
[[email protected] /test]# vim abcd.sh #写成脚本的形式
#!/bin/bash
cat >/test/abc <<EOF
hello
hellix2
EOF
[[email protected] /test]#
[[email protected] /test]# chmod u+x abcd #加上执行权限方可执行
[[email protected] /test]# ./abcd.sh #执行脚本abcd.sh
[[email protected] /test]# cat abc #查看abc里面的内容
hello
hellix2
注意:重写配置文件多应用于网卡配置信息,他会把文件给清空之后在进行把内容写入。
- 重定向输出: > 覆盖输出
覆盖输出,会将之前的文件内容清空后再写入[[email protected] /test]# touch abcde #创建一个 abcd 的文件 [[email protected] /test]# vim abcde #在文件 abcd 写写内容 abcde abcde [[email protected] /test]# cat abc > /test/abcde #把文件 abc 里面的内容覆盖到文件 abcd 中 [[email protected] /test]# cat abcde #文件 abcd 中的内容就会被文件 abc 里面的内容所覆盖 hello hellix2
- 重定向输出: >> 追加输出
追加输出,将信息追加到文件的尾部。采集信息的时候用的比较多
[[email protected] /test]# cat abc >> abcde #把文件 abc 里面的内容追加到文件 abcd 中
[[email protected] /test]# cat abcde #查看文件 abcd 就会发现新加的内容出现在原有文件内容的下方
hello
hellix2
hello
hellix2
在小小的实例当中带出重定向和变量的运用,这些知识点相对来说是比较繁琐而有枯燥,但是有对应的小实例的运用带出这些知识点。一起来尝试尝试吧,有趣又好玩~~~
原文地址:http://blog.51cto.com/13481789/2335250
时间: 2024-11-09 16:04:02