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]