【发布时间】:2012-03-12 23:22:43
【问题描述】:
嘿,所以我有一个 bash 命令,它根据读取某个文件来回显一个字符串。简单来说就是这样的
for line in `cat file`
do
if [ "$line" == "IwantThisLine" ]
then
echo "True"
fi
done
我将它保存为自己的单独脚本。它称为 readRef.sh。所以现在我想在 matlab 中调用它并将它输出的任何内容存储在一个变量中!我不完全确定如何做到这一点,在 system() 上使用 evalc() 时似乎出现错误。但这可能只是我搞砸了报价。
我尝试了类似的东西
evalc(system(['./readRef.sh ' bamfile']))
“bamfile”是一个变量,它只是一个指向 bamfile 路径的字符串。
我收到此错误。
>> tes = evalc(system(['./readRef.sh ' smplBamFile]))
hg18
??? Undefined function or method 'evalc' for input arguments of type 'double'.
巧合的是,它确实吐出了“hg18”,这是我想将 matlab 变量设置为的值。
【问题讨论】:
-
那么,您能否提供您尝试运行脚本的
evalc/system命令以及随附的错误消息? (顺便说一句 - 当你从 bash 运行脚本时它本身是否工作(即sh ./readRef.sh?)你设置了可执行位吗?) -
看起来
smplBamFile可能不是字符串 - 你能做到class(['./readRef.sh ' smplBamFile])吗? -
我认为这个特定的文件在标题中没有引用,因为这就是我的脚本读取引用的方式,所以它什么也没有回应。所以当我单独运行它时,它返回 0。你认为这是为什么?
-
如果我输入 evalc(0) 它会给我完全相同的错误。我很确定这是正在发生的事情。无论如何,让我们假装它没有给我一个错误。你还能帮我解决原来的问题吗?一个简单的例子就可以了,还是我已经做对了?
标签: bash matlab variables call