xuke123 发表于 2018-8-27 11:00:15

shell的特殊文件

  特殊文件
  /dev/null与/dev/tty
  第一个文件/dev/null就是大家所熟知的位桶(bit bucket)。传送到此的文件的数据都会被系统丢掉,也就是说当程序将数据写到此文件时,会认为它成功完成写入数据的操作但实际上什么都没做。如果你需要的是命令的退出状态,而非她的输出,此功能会很有用,例如,测试一个文件是否包含某个模式(pattern)
  If grep pattern myfile > /dev/null
  Then
  ………………………找到模式时
  Else
  …………………找不到模式时
  fi
  相对地,读取/dev/null则会立即返回文件结束符号(end-of-file)。读取/dev/null的操作很少会出现在shell程序里,不过了解这个文件的行为模式还是非常重要的
  另一个特殊文件为/dev/tty。当程序打开此文件时,unix会自动将它重定向到一个终端(一个实体的控制台console)或串行端口(serial port),也可能是一个通过网络与窗口登录的伪终端(pseudoterminal)再与程序结合,这个程序必须读取人工输入时(例如密码)特别有用,此外,用它来产生错误信息也很方便,只是比较少人这么做。
  Printf “enter new password: “         提示输入
  Stty –echo                         关闭自动打印输入字符功能
  Read pass< /dev/tty               读取密码
  Printf “enter again: “                提示再输入密码
  Read pass2 < /dev/tty               再读取一次以确认
  Sty echo                        别忘记打开了自动打印输入字符功能
  ……….
  Stty(set tty)命令用来控制终端的各种设置,-echo选项用来关闭自动打印每个输入字符的功能,stty echo用来恢复该功能。
  自己编写的shell
  如果你要编写自己的脚本,最好准备好自己的bin目录来存放它们,并且能够自动的找到它们,这个不难,只要在建立自己的bin目录,并将它加入到$PATH中的列表即可
  $ cd         切换到home目录
  $ makdir bin    建立个人bin目录
  $ mv nusers bin将我们的脚本放置到该目录
  $ PATH=$PATH:$HOME/bin    将个人的bin目录附加到PATH
  $ nusers             试试看
  6                shell有找到它并执行它
  要让修改永久生效,在 .profile文件中吧你的bin目录加入$PATH,而每次登陆时
  Shell都将读取.profile文件,例如:
  PATH=$PATH:HOME/bin
  在学Linux的可以进群大家多多交流最近感觉进步困难。群号:11511420

页: [1]
查看完整版本: shell的特殊文件