博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shell 命令中变量与从定向的运用...
阅读量:6269 次
发布时间:2019-06-22

本文共 2079 字,大约阅读时间需要 6 分钟。

变量和重定向


变量和重定向应用到我们的 linux shell 脚本当中,在shell脚本当中起到关键性的作用,如果没有变量和重定向的应用我们写起脚本来就是非常困难的一件事:在我们的脚本当中无时无刻都会有他们的身影,熟练他们俩的使用方法,可使我们写脚本的效率以及效果达到事半功倍。

变量

预定义变量

$0    脚本名$*    所有的参数$@    所有的参数$#    参数的个数$$    当前进程的 PID$?    上一个命令的返回值 0表示成功    $!    上一个后台进程的PID

bash 的预置变量理解

[root@deng-120 /test]# vim echo.sh#!/bin/bashecho "脚本名 $0"echo "您输入所有的参数 $*"echo "您输入所有的参数 $@"echo "您输入参数的个数 $#"echo "您当前进程PID $$"echo "上一个命令的返回值 $?"echo "上一个后台进程PID $!"

变量输出结果

[root@deng-120 /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: 给某个在线的终端/用户 发信息

[root@deng-120 /test]# write rosen1  #写给rosen1用户,如果换成zan3那就是单独发给zan3其他用户不会受影响hello         hellox2

注意:针对的是,指定当前用户并且有在线登陆,或者终端;发送信息才会收到

[rosen1@deng-120 ~]$ Message from root@deng-120 on pts/0 at 17:58 ...hellohellox2

wall: 广播信息给所有 在线终端

[root@deng-120 /test]# vim abc      #在文件abc里面写入要广播的内容[root@deng-120 /test]# wall < /test/abc     #把abc文件里面的内容进行广播[root@deng-120 /test]# Broadcast message from root@deng-120 (Sat Aug xx xx:05:54 2018):hello I am a radio wall

注意:广播针对的是所有用户以及终端。把文件写成脚本运用重复循环加上 “sleep” 睡眠可以无限循环广播,不过这样做实用性不大,不建议使用,看需求决定。

  • 输入重定向: << 追加输入
重写配置文件[root@deng-120 /test]# vim abcd.sh  #写成脚本的形式#!/bin/bashcat >/test/abc <

注意:重写配置文件多应用于网卡配置信息,他会把文件给清空之后在进行把内容写入。

  • 重定向输出: > 覆盖输出
    覆盖输出,会将之前的文件内容清空后再写入
    [root@deng-120 /test]# touch abcde  #创建一个 abcd 的文件[root@deng-120 /test]# vim abcde    #在文件 abcd 写写内容abcdeabcde[root@deng-120 /test]# cat abc > /test/abcde  #把文件 abc 里面的内容覆盖到文件 abcd 中[root@deng-120 /test]# cat abcde     #文件 abcd 中的内容就会被文件 abc 里面的内容所覆盖hellohellix2
  • 重定向输出: >> 追加输出
    追加输出,将信息追加到文件的尾部。采集信息的时候用的比较多
[root@deng-120 /test]# cat abc >> abcde   #把文件 abc 里面的内容追加到文件 abcd 中[root@deng-120 /test]# cat abcde          #查看文件 abcd 就会发现新加的内容出现在原有文件内容的下方hellohellix2hellohellix2

在小小的实例当中带出重定向和变量的运用,这些知识点相对来说是比较繁琐而有枯燥,但是有对应的小实例的运用带出这些知识点。一起来尝试尝试吧,有趣又好玩~~~

转载于:https://blog.51cto.com/13481789/2335250

你可能感兴趣的文章
《从零开始学Swift》学习笔记(Day 51)——扩展构造函数
查看>>
python多线程队列安全
查看>>
[汇编语言学习笔记][第四章第一个程序的编写]
查看>>
android 打开各种文件(setDataAndType)转:
查看>>
补交:最最原始的第一次作业(当时没有选上课,所以不知道)
查看>>
Vue实例初始化的选项配置对象详解
查看>>
PLM产品技术的发展趋势 来源:e-works 作者:清软英泰 党伟升 罗先海 耿坤瑛
查看>>
vue part3.3 小案例ajax (axios) 及页面异步显示
查看>>
软件测试(二)之 Failure, Error & Fault
查看>>
浅谈MVC3自定义分页
查看>>
.net中ashx文件有什么用?功能有那些,一般用在什么情况下?
查看>>
select、poll、epoll之间的区别总结[整理]【转】
查看>>
CSS基础知识(上)
查看>>
PHP中常见的面试题2(附答案)
查看>>
角色权限分配
查看>>
明小子动力上传拿webshell.zip
查看>>
ES6 Module export与import复合使用
查看>>
第三篇、image 设置圆角的几种方式
查看>>
关于Vs2010 C#使用DirectX的问题
查看>>
EPP(Eclipse PHP)语法高亮仿EditPlus配置
查看>>