linux - sh 命令没有调用 shell 脚本

标签 linux macos shell unix sh

我编写了一个简单的 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 命令。有建议让命令更新别名和环境变量吗?

这是作业的屏幕截图,以便您可以看到我必须满足的要求: enter image description here

感谢您的时间和帮助。

最佳答案

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

关于linux - sh 命令没有调用 shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19438084/

相关文章:

mysql - 确保脚本执行或在计划错过时踢掉它

C++/OpenFST - 查找库和链接时出错

linux - 在 Shell 脚本中解析 CSV 字符串并将其写入文件

linux - 如何在 OpenSuSE 或其他基于 rpm 的发行版上安装 PyLucene?

android - adb shell getevent 中 cdfinger_input 代表什么类型的事件

linux - 如何使用 fortran 或 shell 在同一文件中突出显示其右侧的不匹配数据?

javascript - 带有下划线的 webScriptNameForSelector 和 javascript 方法

linux - curl:/usr/local/lib/libldap_r-2.4.so.2:没有可用的版本信息

git - 如何从 Mac OS X 10.5.8 卸载 git 版本 1.6.5.1

ios - –removeInitialMenu ...属性上的方法