我有两个R脚本在folder1的子文件夹中,并运行了以下脚本。对于这些R脚本,返回了“没有此文件或目录”的错误。 有人知道如何解决这个问题吗? 谢谢
Bash脚本:
#! /usr/bin/env Rscript
for dir in folder1/* ; do
Rscript script1.R
Rscript script2.R
done
#!
指定了R,而不是bash。并且你的循环是错误的。
也许尝试这样做:#!/bin/bash Rscript
for dir in folder1/script*.R ; do
echo "Now running $dir"
Rscript folder1/$dir
done
请问 script1.R
和 script2.R
是否在 folder1
的子目录中?如果是的话,请尝试以下操作:
#! /bin/bash
for dir in folder1/* ; do
Rscript "$dir"/script1.R
Rscript "$dir"/script2.R
done
使用find
的另一种方法来运行folder1
内的所有R脚本:
find folder1 -type f -name "*.R" -exec Rscript {} \;
你从未更改过目录,因此在执行脚本之前,你应该切换到新的子文件夹或使用完整路径来执行它们。
因此,请尝试替换
Rscript script1.R
Rscript script2.R
通过以下任一方式
cd folder1/$dir; Rscript script1.R; cd -
cd folder1/$dir; Rscript script2.R; cd -
或者
Rscript folder1/$dir/script1.R
Rscript folder1/$dir/script2.R
另外,你的 shebang 是错误的,应该是
#!/bin/bash