所以我的系统上没有 python 作为命令,但我有 python3。所以我做到了alias python=python3
,然后我能够做python test.py
insead of just 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
,但这没有帮助。
有任何想法吗?
只有交互式 shell 在启动时读取 ~/.bashrc,因此只有交互式 shell 加载您的别名或函数定义。当 shell 作为脚本解释器启动时,它不会加载任何外部“rc”脚本,也不会定义别名。
此外,即使别名被定义为脚本的一部分,在“脚本解释器”模式下它们的扩展也会被禁用。(Bash 允许通过 'shopt' 启用它,但最好不要那样做。脚本应该使用函数而不是别名。)
不要使用别名,而是通过将它符号链接到 /usr/bin/python3 二进制文件,在 $PATH 中的某处创建一个实际的“python”可执行文件。(~/bin 或 /usr/local/bin 是自定义可执行文件的传统位置。)