我正在尝试使用. file
手册页指定的破折号获取(bash-parlance)文件:
. file The commands in the specified file are read and executed by the shell.
但即使文件在那里,我也会收到错误消息:
$ ls
defaults.sh run.sh
$ cat run.sh
#!/bin/sh
. defaults.sh
echo "VAR: $VAR"
$ cat defaults.sh
VAR=abc
$ bash run.sh
VAR: abc
$ dash run.sh
run.sh: 3: .: defaults.sh: not found
当我尝试. defaults.sh
使用交互式破折号时,也会发生同样的事情。
我在哪里错了?
对于某些shell,您需要
./
在前面放置或绝对路径:请注意,您可能要添加脚本的绝对路径
run.sh
,否则defaults.sh
将来自用户的位置:如果从 run.sh 和 defaults.sh 文件所在的目录运行“dash run.sh”,请尝试将 $PWD 添加到 PATH。
在我的测试中,我看到了这些结果:
然后我采取了这一步:
将 $PWD 添加到 PATH 后的结果: