因此,我的系统上没有可用的 python 命令,但我有 python3。所以我安装了它alias python=python3
,然后就可以执行python test.py
而不是仅仅python3 test.py
。
然后我创建了一个新文件 - test.sh - 其内容如下:
#!/bin/bash
python test.py
在启用该文件的执行权限后,我执行了./test.sh
但出现./test.sh: line 2: python: command not found
错误。
我ps -p $$
正在运行 bash,它与我使用 ./test.sh 的 shell 相同。
我也尝试将其放在文件alias python=python3
底部~/.bashrc
,但没有帮助。
有任何想法吗?
答案1
只有交互式 shell 在启动时读取 ~/.bashrc,因此只有交互式 shell 才会加载您的别名或函数定义。当 shell 作为脚本解释器启动时,它不会加载任何外部“rc”脚本,并且不会定义别名。
此外,即使别名是定义为脚本的一部分,在“脚本解释器”模式下,它们的扩展被禁用。(Bash 允许通过“shopt”启用此功能,但最好不要这样做。脚本应该使用函数而不是别名。)
不要使用别名,而是在 $PATH 中的某个位置创建一个实际的“python”可执行文件,通过将其符号链接到 /usr/bin/python3 二进制文件。(~/bin 或 /usr/local/bin 是自定义可执行文件的传统位置。)
ln -s /usr/bin/python3 /usr/local/bin/python