Linux C++自定义命令,命令别名。简单Shell题目
- 格式:docx
- 大小:127.24 KB
- 文档页数:7
软件实习
操作系统OS
班级:13软件工程二班
姓名:殷健
学好:1345536225
Linux实习
题目二
要求
自己添加一个Linux命令cp_1,该命令可以将1个文件的若干行拷贝到另一个文件中。
形式 # cp_1 file1 5 file2
将file1前5行 拷贝到file2 中
实现过程
首先,我所理解的“添加Linux命令”大体上就是通过shell中函数function写特定代
码到系统的~/.bashrc文件中。
测试 .bashrc 文件的修改与使用
在里面加入
然后使文件生效:
测试
测试成功。
其次,将文件头几行(尾几行)添加到另一个文件中
进入 .bashrc
加入简单shell代码。
简单shell代码为:
“head –n”打印文件的头几行
“>>“重定向到某处(插在尾部,非覆盖)
运行情况:将文件1中头5行复制到文件2中
成功。
C++实现
材料:
如何将C++程序变成linux可执行命令
首先,你需要在你的环境变量PATH里面,加入你的”执行程序”的路径,这样你就可以敲
入”执行程序名”来执行你的程序了.至于命令后面的参数,需要在你的程序中,在main函数里
面,通过argc和argv来获取和处理filepath参数,
这是 linux 和windows的一个区别。 windows默认的环境变量PATH包括当前目录但
unix类不包括当前目录
直接在你的~目录下建立一个bin目录把你自己的程序丢进去然后在环境变量$PATH里面添
加~/bin
重新login或者直接source 一下设置就行了
一般修改 ~/.bash_profile 文件(bash其他shell请自行入座)
添加
export export PATH=$PATH:/home/snyh/bin
传参:
argc,argv 用命令行编译程序时有用。
主函数main中变量(int argc,char *argv[ ])的含义
有些编译器允许将main()的返回类型声明为void,这已不再是合法的C++
main(int argc, char *argv[ ], char **env)才是UNIX和Linux中的标准写法。
argc: 整数,用来统计你运行程序时送给main函数的命令行参数的个数
* argv[ ]: 字符串数组,用来存放指向你的字符串参数的指针数组,每一个元素指向一
个参数
argv[0] 指向程序运行的全路径名
argv[1] 指向在DOS命令行中执行程序名后的第一个字符串
argv[2] 指向执行程序名后的第二个字符串
char * 强制转换 int,用atoi()
C++代码:
将编译(g++ test2.cpp –o test2)好的文件test2放入新建bin文
件夹,然后添加至环境变量。
测试
成功!!!
题目二
要求
编写一个shell脚本。脚本程序运行时,控制台输入四个正整数(p q r s)。然后判断
数字的大小,如果四个数字的和大于320,就输出“优良”;如果四个数字的和小于等于320
并且大于240,就输出“及格”;其它情况输出“未通过”。如果p>q,则求出p除以q的余
数并输出“p mod q = ?(把计算的值代替问号)”,否则求出q除以p的余数并输出“q mod p
= ? (把计算的值代替问号)”。
实现过程
创建test.sh文件存放脚本程序。进入编写代码。
测试;三组数据
95 90 90 90
70 75 70 70
50 50 50 50
测试完成。