在哪里编写shell程序

在哪里编写shell程序,第1张

当然是在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程序,判断系统中是否存在,如果存在将其删除等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zz/9611183.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存