
当然是在linux系统下啦,shell是包裹在linux内核的外壳,你要和linux系统交互,就要通过和shell与之交互。其实也就是翻译的角色,所以shell本身就是命令解析器,就是环境。
它c语言没什么联系,除了它本身是C语言写的以外。。。
这是两种不同的编程方式。比如,C程序可以再VC++编译器中编译。而Java程序可以用eclipse。shell脚本则可以在linux的外壳shell下。
方法一:
#!/bin/bash
i=0
for para in $
do
let i+=1
num=$((i%2))
[ $num -ne 0 ] && echo "$para"
done
方法二;
#!/bin/bash
echo $|sed 's/ /\n/g'|awk 'i=!i'
具体说明参见下面的链接。
按理说,echo $|awk 'BEGIN{RS=" "}i=!i' 应该也行,但不知道为何最后会多出一个空行。
注意:如果脚本参数包含带空格的字符串,如"ab 3c",就会有问题。
编写一个简单的shell程序,要求如下:
一:这个shell必须支持以下内部命令:
1cd<directory>--把当前目录改变为<directory>,如果没有<directory>参数,则显示当前目录。如果该目录不存在,则给出错误提示。这个命令可以用来改变PWD环境变量。
2clr--清屏。
3dir<directory>--列出目录<directory>的内容。
4environ--列出所有的环境变量。
5echo<comment>--在屏幕上显示<comment>并换行。
6help--显示用户手册,并且使用more命令过滤。
7pause--停止shell直到按下回车。
8quit--退出shell。
9shell的环境变量应该包含shell=<pathname>/myshell,其中<pathname>/myshell是可执行程序shell的完整路径。
二:其他的命令行被解释为程序调用,,shell创建并执行这个程序,并作为自己的子进程,程序的环境变量必需包含以下条目:
parent=<pathname>/myshell,
三:shell必须能够从文件中提取命令行输入,例如shell使用以下命令行被调用:
programname arg1 arg2 <inputfile> outputfile
四:shell必须支持i/o重定向,stdin和stdout或其中之一。例如命令行为
programname arg1 arg2 <inputfile> outputfile
使用arg1和arg2执行程序programname,输入文件流被替换为inputfile,输出文件流被替换为outputfile。
stdout重定向应该支持以下内部命令:dir,environ,echo和help。
使用输出重定向是,如果重定向字符是>,则创建输出文件,如果存在则覆盖之;如果重定向字符为 >>则也会创建输出文件,如果存在则添加到文件 尾。
五:shell必需支持后台程序执行。如果在命令行后面添加字符&,在加载完程序后需要立刻返回命令行提示符。
六:命令行提示符必需包含当前路径。
以上就是关于在哪里编写shell程序全部的内容,包括:在哪里编写shell程序、编写shell程序,使之能显示奇数位置参数的值,即显示$1,$3。。位置的参数值、编写一个简单的shell程序,判断系统中是否存在,如果存在将其删除等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)