我编写了一个简单的 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
命令。有建议让命令更新别名和环境变量吗?
这是作业的屏幕截图,以便您可以看到我必须满足的要求:
感谢您的时间和帮助。
最佳答案
您在独立脚本内设置的任何环境变量仅在该脚本内可见。相反,您需要将这些命令添加到 ~/.profile
(或您系统上的任何等效命令)。然后当您登录命令行控制台时它们将被执行。
关于linux - sh 命令没有调用 shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19438084/