如何使用.sh文件创建自己创建的shell

时间:2016-05-13 01:19:30

标签: linux bash shell unix

我的老师给了我们这个任务来创建我们自己的shell。我们的shell应该被称为rshell,并且应该像常规shell一样工作。

我使用C ++创建了自己的shell。如果您在我创建的shell中键入ls之类的命令,它会为您提供一个列表,就像您在常规shell中键入ls一样。

我面临的问题是如何让.sh文件或脚本文件与我创建的shell一起使用。我注意到当我使用shell运行.sh文件时,它不会通过我的shell运行.sh文件。它通过常规shell运行它。如何通过我的shell运行.sh个文件?

2 个答案:

答案 0 :(得分:5)

更改脚本的hash-bang行以指向shell。例如,

#!/usr/local/bin/rshell

或者你的shell可执行文件在哪里。

答案 1 :(得分:4)

正如John已经说过的那样,将shebang更改为指向你的shell。内核将调用shebang中的命令,文件本身作为参数。要演示,请尝试使用#!/bin/cat的shebang文件。

#!/bin/cat
hello world

它几乎与您键入/bin/cat /path/to/file的行为相同。

shebang没有PATH查找功能,因此#!yourshell不能用作shebang。但是,您可以使用env执行PATH查找,如#!/usr/bin/env yourshell中所示。 (这种方法适用于不同系统上不同路径的命令,如python。)