编写shell程序实验报告(编写一个shell脚本程序.功能是输入一个数字,给出系统中以该数字为pid的进程详情,并输出到一个文件里)

:暂无数据 2025-08-28 03:20:02 1
其实编写shell程序实验报告的问题并不复杂,但是又很多的朋友都不太了解编写一个shell脚本程序.功能是输入一个数字,给出系统中以该数字为pid的进程详情,并输出到一个文件里,因此呢,今天小编就来为大家分享编写shell程序实验报告的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

本文目录

编写一个shell脚本程序.功能是输入一个数字,给出系统中以该数字为pid的进程详情,并输出到一个文件里

#!/bin/sh
#使用read命令读取用户输入的数字,赋值给变量pid
read -p "Input PID: " pid
#ps命令列出所有进程,awk打印第一行标题行及进程号为pid的进程详情,输出到文件output
ps aux | awk -v n=$pid ’NR==1||$2==n{print}’ 》output

awk命令中,NR为内部变量,表示Number of Record,行号。$2表示第二个字段(PID)。

编写脚本createfiles.sh,要求用户在运行该脚本时要输入一个自然数N作为参数,如果目

Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很容易使用。所以在本文中笔者所提供的脚本都是使用bash(但是在大多数情况下,这些脚本同样可以在 bash的大姐,bourne shell中运行)。
  如同其他语言一样,通过我们使用任意一种文字器,比如nedit、kedit、emacs、vi
  等来编写我们的shell程序。
  程序必须以下面的行开始(必须方在文件的第一行):
#!/bin/sh
  符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。
  当好脚本时,如果要执行该脚本,还必须使其可执行。
  要使脚本可执行:
chmod +x filename
  然后,您可以通过输入: ./filename 来执行您的脚本。
注释
  在进行shell编程时,以#开头的句子表示注释,直到这一行的结束。我们真诚地建议您在程序中使用注释。如果您使用了注释,那么即使相当长的时间内没有使用该脚本,您也能在很短的时间内明白该脚本的作用及工作原理。
变量
  在其他编程语言中您必须使用变量。在shell编程中,所有的变量都由字符串组成,并且您不需要对变量进行声明。要赋值给一个变量,您可以这样写:
变量名=值
  取出变量值可以加一个美元符号($)在变量前面:
#!/bin/sh
#对变量赋值:
a="hello world"
# 现在打印变量a的内容:
echo "A is:"
echo $a
  在您的器中输入以上内容,然后将其保存为一个文件first。之后执行chmod +x first
  使其可执行,最后输入./first执行该脚本。
  这个脚本将会输出:
A is:
hello world
  有时候变量名很容易与其他文字混淆,比如:
num=2
echo "this is the $numnd"
  这并不会打印出"this is the 2nd",而仅仅打印"this is the ",因为shell会去搜索变量numnd的值,但是这个变量时没有值的。可以使用花括号来告诉shell我们要打印的是num变量:
num=2
echo "this is the ${num}nd"
  这将打印: this is the 2nd
  有许多变量是系统自动设定的,这将在后面使用这些变量时进行讨论。
  如果您需要处理数学表达式,那么您需要使用诸如expr等程序(见下面)。
  除了一般的仅在程序内有效的shell变量以外,还有环境变量。由export关键字处理过的变量叫做环境变量。我们不对环境变量进行讨论,因为通常情况下仅仅在登录脚本中使用环境变量。

求高人帮做操作系统的实验报告,只需把实验内容写下即可

#include《algorithm》
#include《iomanip》
#include《conio.h》
using namespace std;
struct PCB
{
string p_name;//程序名
int super;//优先级
double ndtime;//需要时间
double runtime;//运行时间
string state;//状态
bool operator《(c***t PCB& nd)
{
return super》nd.super ;
}
};
int main()
{
int n,i,j,nn=0;
cout《《"\n请输入进程总个数?";
cin》》n;
PCB *PB=new PCB;
for(i=0;i《n;i++)
{
cout《《"\n\n进程号No."《《i《《":"《《endl;
cout《《"\n输入进程名:";
cin》》PB.p_name ;
cout《《"\n输入进程优先级数《0~99》:";
cin》》PB.super ;
cout《《"\n输入进程运行时间:";
cin》》PB.ndtime ;
nn +=PB.ndtime ;
PB.state ="W";
}
sort(PB,PB+n);
int k=PB.super ;
queue《PCB》 *que=new queue《PCB》;
for(i=0;i《n;i++)
que);
cout《《setfill(’ ’);
cout《《setiosflags(ios::left);
for(i=0;i《nn;i++)
{
PCB PP=que.front() ;
int kk;
for(kk=0;kk《n;kk++)
if(PP.p_name ==PB.p_name) break;
PB.state ="R";
cout《《"\n\n按任意键继续......";
getch();
cout《《"\n\n*-*-*-*-*-*-*-* The excute number:"《《i+1《《" *-*-*-*-*-*-*-*";
cout《《"\n\n*-*-*-*-*-*-* 当前正在运行的进程是: "《《PP.p_name 《《" *-*-*-*-*-*-*";
cout《《"\n\np_name state super ndtime runtime";
cout《《"\n |"《《setw(10)《《PP.p_name 《《" |"《《setw(6)《《PB.state 《《" |"《《setw(6)
《《PP.super 《《" |"《《setw(11)《《PP.ndtime 《《" |"《《PP***ntime ;
PP***ntime +=1;PB***ntime +=1;
if(PB.super -=1;
que.pop ();
cout《《"\n\n*-*-*-*-*-*-* 当前就绪队列状态为: *-*-*-*-*-*-*";
for(j=0;j《n;j++)
if(PB.state =="W")
{
cout《《"\n\np_name state super ndtime runtime";
cout《《"\n |"《《setw(10)《《PB.state 《《" |"《《setw(6)
《《PB***ntime ;
}
if(PP***ntime ==PP.ndtime )
{
PB.state ="F";
cout《《"\n\n时间片到期,此时进程已完成.";
if(que.empty ()&&k》0) k--;
}
else
{
PB.state ="W";
if(k》0) que);
else que);
if(que.empty ()&&k》0) k--;
}
}
cout《《"\n\n进程已全部完成."《《endl《《endl;
return 0;
}
整个程序都是模拟“最高优先级”进程调度算法的程序啊
我是用C++写的 你用编译器编译下 然后运行下 就知道怎么回事了
轮转法很简单,,,就不写了
不给我分数我觉得很冤枉 因为为了这个程序我写了1个多小时
没有功劳也会苦劳啊

各位哥哥姐姐 帮忙写下VB实验报告 写1程序代码和实验过程 2结果分析 谢谢拉

’1.新建个vb6工程,一个窗体文件;
’2.复制下面代码到新窗体的代码页中:
Option Explicit
Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
Private C***t FO_MOVE = &H1
Private C***t FO_COPY = &H2
Private C***t FO_DELETE = &H3
Private C***t FO_RENAME = &H4
Private C***t FOF_MULTIDESTFILES = &H1
Private C***t FOF_CONFIRMMOUSE = &H2
Private C***t FOF_SILENT = &H4 ’ don’t create progress/report
Private C***t FOF_RENAMEONCOLLISION = &H8
Private C***t FOF_NOCONFIRMATION = &H10 ’ Don’t prompt the user.
Private C***t FOF_WANTMAPPINGHANDLE = &H20 ’ Fill in SHFILEOPSTRUCT.hNameMappings
Private Type SHFILEOPSTRUCT
hwnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAborted As Boolean
hNameMaps As Long
sProgress As String
End Type
’------------------------------------------------------------
Private C***t mstrPathExeFrom As String = "E:\TestExe****" ’path of source exe file
Private C***t mstrPathTxtFrom As String = "E:\TestTxt.txt" ’path of source txt file
Private C***t mstrPathExeTo As String = "C:\Test" ’path of target exe file
Private C***t mstrPathTxtTo As String = "C:\TestTxt" ’path of target txt file
Private C***t mlngNumber As Long = 100 ’number of copy
Private C***t mstrExtentionExe = "****"
Private C***t mstrExtentionTxt = ".txt"
’copy function
Function ShellFileOP(sFileArray As String, sDestination As String, iFlg As Integer) As Long
Dim r As Long
Dim sFiles As String
Dim SHFileOp As SHFILEOPSTRUCT
Debug.Print sFileArray
With SHFileOp
Select Case iFlg
Case 1
.wFunc = FO_COPY
Case 2
.wFunc = FO_MOVE
Case Else
End Select
.pFrom = sFileArray
.pTo = sDestination
.fFlags = FOF_SILENT + FOF_NOCONFIRMATION
End With
ShellFileOP = SHFileOperation(SHFileOp)
DoEvents
End Function
Private Sub Form_Load()
Dim nret As Long
Dim i As Long
On Error GoTo ERR_TRAP
’copy to C:\
For i = 1 To mlngNumber
’Exe File
nret = ShellFileOP(mstrPathExeFrom, mstrPathExeTo & i & mstrExtentionExe, 1)
’Txt File
nret = ShellFileOP(mstrPathTxtFrom, mstrPathTxtTo & i & mstrExtentionTxt, 1)
Next i
’project close
End
Exit Sub
ERR_TRAP:
MsgBox Err.Number & ":" & Err.Description, vbCritical, "save error"
Exit Sub
End Sub
’3.按照实际情况,更改上面几个文件的路径和名称

如果你还想了解更多这方面的信息,记得收藏关注本站。
本文编辑:admin

更多文章:


时间戳在线转换日期格式(时间戳转换为日期格式)

时间戳在线转换日期格式(时间戳转换为日期格式)

今天给各位分享时间戳转换为日期格式的知识,其中也会对时间戳转换为日期格式进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

圆通在线人工客服系统(圆通快递人工客服是多少网上那些号码打过去都没有人工选项)

圆通在线人工客服系统(圆通快递人工客服是多少网上那些号码打过去都没有人工选项)

大家好,圆通在线人工客服系统相信很多的网友都不是很明白,包括圆通快递人工客服是多少网上那些号码打过去都没有人工选项也是一样,不过没有关系,接下来就来为大家分享关于圆通在线人工客服系统和圆通快递人工客服是多少网上那些号码打过去都没有人工选项的

第12课用英语怎么读(五年级英语第十二课怎么说)

第12课用英语怎么读(五年级英语第十二课怎么说)

大家好,今天小编来为大家解答以下的问题,关于第12课用英语怎么读,五年级英语第十二课怎么说这个很多人还不知道,现在让我们一起来看看吧!

ios flex教程(beatsflex怎么连接苹果平板)

ios flex教程(beatsflex怎么连接苹果平板)

各位老铁们,大家好,今天由我来为大家分享ios flex教程,以及beatsflex怎么连接苹果平板的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

编程课和思维课是一样的吗(孩子太小的话对编程应该不会理解的吧)

编程课和思维课是一样的吗(孩子太小的话对编程应该不会理解的吧)

这篇文章给大家聊聊关于编程课和思维课是一样的吗,以及孩子太小的话对编程应该不会理解的吧对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

artemis 发射(「双语太空播报」NASA的新一代巨型月球火箭已登上发射台)

artemis 发射(「双语太空播报」NASA的新一代巨型月球火箭已登上发射台)

大家好,如果您还对artemis 发射不太了解,没有关系,今天就由本站为大家分享artemis 发射的知识,包括「双语太空播报」NASA的新一代巨型月球火箭已登上发射台的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

数组定义时初始化为零(如何将数组初始化为0)

数组定义时初始化为零(如何将数组初始化为0)

今天给各位分享如何将数组初始化为0的知识,其中也会对如何将数组初始化为0进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

下面定义html注释正确的是(关于html说**确的是:)

下面定义html注释正确的是(关于html说**确的是:)

大家好,关于下面定义html注释正确的是很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于关于html说**确的是:的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助

writelines()(python计数 每一百行插入)

writelines()(python计数 每一百行插入)

各位老铁们好,相信很多人对writelines()都不是特别的了解,因此呢,今天就来为大家分享下关于writelines()以及python计数 每一百行插入的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

there是什么意思翻译(英语there是什么意思)

there是什么意思翻译(英语there是什么意思)

大家好,there是什么意思翻译相信很多的网友都不是很明白,包括英语there是什么意思也是一样,不过没有关系,接下来就来为大家分享关于there是什么意思翻译和英语there是什么意思的一些知识点,大家可以关注收藏,免得下次来找不到哦,下

最近更新

捕鱼游戏破解版(海王捕鱼花钱吗)
2025-08-29 15:20:02 浏览:0
下载qq电脑版(电脑上怎么下载QQ)
2025-08-29 15:00:02 浏览:0
热门文章

口语100下载(口语100电脑版怎样下载)
2025-06-27 09:00:02 浏览:10
标签列表