应用UNIX的fork()等系统调用,编写一个c程序具有以下功能: a) 实现Shell的基本功能,包括有:打印提示符;接受和分析命令行(滤去无效的空格、tab符号以及换行符等);执行命令(要有出错处理;输入exit或者bye退出);返回父进程; b) 处理后台程序(不需要wait) c) 处理多行命令(分析命令行中的‘;’并处理之) d)应用 dup(), pipe()系统调用具有输入输出重定向以及管道功能
出现bad interpreter:No such file or directory的原因,是文件格式的问题。这个文件是在Windows下编写的。换行的方式与Unix不一样,但是在vim下面如果不Set一下又完全看不出来。问题分析:1、将windows 下编写好的SHELL文件,传到linux下执行,提示出错。2、出错信息:bad interpreter: 没有那个文件或目录。
问题原因:因为操作系统是windows,在windows下编辑的脚本,所以有可能有不可见字符。脚本文件是DOS格式的
shell脚本读取数据有以下几种方式:1.键盘输入,默认2.从文件中读取3.通过管道命令传递
echo的功能:\c :不换行\f :进纸\t :跳格\n :换行\表示转义,例如:”\”/dev/rmt0″\”翻译为,”/dev/rmt0″
read:从键盘或文件的某一行文本中读取信息,并将其赋给一个变量。 代码如下:[jb51]/>read namehello i am a regular user[jb51]/>echo $namehello i am a regular user
linux shell有一套自己的流程控制语句,其中包括条件语句(if),循环语句(for,while),选择语句(case)。下面我将通过例子介绍下,各个语句使用方法。
一、shell条件语句(if用法)
if语句结构[if/then/elif/else/fi]
if 条件测试语句
then
action
[elif 条件
action
else
action
]
fi
如果对于:条件测试语句不是很清楚,可以参考:linu