Shell脚本学习指南

1,$ who命令可以查看当前系统谁在登录

2,$ who | wc -l      该命令是计算用户个数,不返回谁在登陆了,只返回几个用户在登录

3,| 是管道符号,可以在两程序间建立管道(pipeline),上面的命令是who的输出,成了wc命令的输入,wc所列出的结果就是已登录用户的个数

4,如何将上面管道转变成一个独立的命令。方法是把这条命令输入一个一般的文件中,然后使用chmod为该文件设置执行的权限,如下所示:

$ cat > nusers    建立文件,使用cat复制终端的输入

who | wc -l       程序的内容

按Ctrl+D可以退出输入命令状态,也就是表示end of file

$ chmod +x nusers    让文件有执行的权限

$ ./nusers       执行测试,你会发现结果和直接执行 who | wc l一样。 然后你也可以查看文件nusers的内容

5,自给自足的脚本:位于第一行的#!

当shell执行一个程序时,会要求UNIX内核启动一个新的进程(process),以便在该进程里执行所指定的程序。内核知道如何为编译型程序做这件事。但是我们写的nuers这个shell脚本是解释型程序。当shell要求内核执行它时,内核无法做,并回应”not executable format file"错误信息。shell收到此错误信息时,就会说“啊,这不是编译型程序,那么一定是shell脚本”,接着会启动一个新的/bin/sh(标准shell)副本来执行该程序。

当系统只有一个shell时,退回到/bin/sh很方便,但现在UNIX系统通常有好几个shell,所以需要脚本文件中第一行的开头处使用#!这两个字符。 当一个文件中开头的两个字符是#!时,内核会扫描该行其余的部分,查看是否存在可用来执行程序的解释器的完整路径。shell脚本通常一开始都是 #!  /bin/sh

6,shell世界里,变量值可以是(而且通常是)空值,也就是不含任何字符。空值就是null

7,shell变量名称的开头是一个字母或下划线符号,后面接任意长度的字母,数字或下划线符号。变量长度无限制

$ my_var=this_is_a_long_string_that_does_not_mean_much              分配变量值

$ echo $my_var                                                                                       打印变量值

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值