我在WSL2中测试了脚本
这是我的脚本:
#!/usr/bin/bash
echo "testing..."
printf "testing..."
如果我运行bash test
source test
. test
但是,如果我将脚本所在的路径添加到path并运行test
,则不会输出任何内容。为什么?我该如何修复它?
test
是bash内置的。POSIX系统也有test
可执行文件。
当您输入一个命令而没有指定可执行文件的路径时,bash将首先检查该命令是否是其内置命令之一,然后在PATH
中搜索可执行文件。如果该命令与一个bash内置命令的名称匹配,它将运行内置的。
如果您仍然希望在不指定路径的情况下运行脚本,有两种方法:推荐 最后,不建议使用选项2,因为重新排序PATH
设置,这样你的test
会在系统的test
之前被发现,然后运行env test
来运行你的脚本。env
将搜索你的PATH
来找到你的test
可执行文件,然后执行它。PATH
可能很危险,而且(对您和其他人来说)在您的系统上有第二个test
二进制文件可能会令人困惑。