假设我正在运行一些命令并将其输出重定向到具有相对路径的日志文件。三个不同的例子:
sh script.sh > logs/script1.log
./script2.sh &> logs/script2.log
./script3.sh input.txt > output.txt 2>logs/script3.err
虽然有必要为script2.sh
和script3.sh
加上前缀./
,因为可执行脚本位于同一目录中,但不在 中${PATH}
,但是否有必要(或最好)为数据文件的路径(无论是输入还是输出)添加前缀?如果是这样,那么上面的三个例子将变成:
sh ./script.sh > ./logs/script1.log
./script2.sh &> ./logs/script2.log
./script3.sh ./input.txt > ./output.txt 2>./logs/script3.err
在我的测试中,结果是相同的,但总是如此吗?也许使用符号链接时会有所不同......我不确定,因此这个问题。
我正在使用的代码有时包含./
在相关数据(日志也是数据)文件路径的前面,有时则不包含。团队中尚未就最佳实践达成共识,我想建立一个共识。如果./
在相对数据(而不是可执行文件)文件路径前面无关紧要,那么我宁愿永远不要将它与非可执行文件路径一起使用,如果它有时会产生影响,那么我想我应该始终在相对非- 可执行文件路径./
最好的方法是什么?
有没有这方面的权威文档?