我想编写一个包含多种类型命令的脚本
> export PATH=$PREFIX/bin
哪里
> $PREFIX = /home/usr
或其他。我没有将它键入Shell(/ bin / bash),而是运行脚本来执行命令。
用sh尝试,然后使用带有该行的.py脚本
> commands.getstatusoutput('export PATH=$PREFIX/bin')
但这些导致错误“坏变量名称”。 会感谢一些想法!
答案 0 :(得分:2)
如果您需要在运行.profile
及其等效项后通过脚本调整PATH(或任何其他环境变量),则需要点''或者'来源'包含脚本的文件:
. file_setting_path
source file_setting_path
.
表示法适用于所有Bourne shell派生词,并由POSIX标准化。 {3}}表示法在C shell中使用,并且完全不必要地感染了Bash。
请注意,文件(source
)可以指定为路径名,或者如果它位于file_setting_path
上列出的目录中,则会找到该文件。它只需要是可读的;它不必是可执行的。
dot命令的工作方式是它将命名文件作为当前shell环境的一部分读取,而不是在子shell中执行它,就像执行普通脚本一样。通常,子shell会愉快地设置其环境,但这不会影响调用脚本。
答案 1 :(得分:1)
错误的变量名称可能仅仅是$PREFIX
未定义的投诉。
通常PATH
的设置看起来像
export PATH=$PATH:/new/path/to/programs
这样您就可以保留旧的PATH
,但最后添加一些内容。
最好将这些内容放在.bashrc
中,以便每次登录时都可以运行。