0

我编写了一个简单的 shell 脚本,它为 shell 添加了一些别名,它作为学校作业的一部分执行。这是文件的内容testscript.txt

#!/usr/bin

alias dir="ls -l"
alias alerts="cat /etc/motd"
PS1="What next Matt ? "

当我使用以下命令时:

sh testscript.txt

由于没有返回错误,因此该命令似乎正在运行,但是,别名和命令提示符变量并未更改。

我知道脚本可以正常工作,因为我尝试了以下三种替代方案,它们都可以顺利运行:

. ./testscript.txt
. testscript.txt
source testscript.txt

作业要求我使用sh命令。有什么建议让命令更新别名和环境变量吗?

这是作业的屏幕截图,因此您可以看到我必须满足的要求: 在此处输入图像描述

感谢您的时间和帮助。

4

2 回答 2

0

您在独立脚本中设置的任何环境变量都只能在该脚本中可见。相反,您需要将这些命令添加到~/.profile(或系统上的任何等效命令)。然后它们将在您登录命令行控制台时执行。

于 2013-10-17T22:07:55.110 回答
-1

shebang(第一行)不正确。

在您的情况下,您应该将第一行替换为#!/bin/shor #!/bin/bash

只需在 Google 中搜索“shebang”即可。它基本上是启动的可执行文件的绝对路径。 http://en.wikipedia.org/wiki/Shebang_(Unix)

于 2013-10-21T16:29:56.703 回答