我想在MATLAB中调用以下bash命令:
grep "Up to" ~/test_linux/vision1.1/log | awk '{print $7}'
我在MATLAB中使用system()
,但结果却有错误:
>> [status string]=system('grep "Up to" ~/test_linux/vision1.1/log | awk '{print $7}' ');
??? [status string]=system('grep "Up to" ~/test_linux/vision1.1/log | awk '{print $7}' ');
Error: Unbalanced or unexpected parenthesis or bracket.
我是否需要在bash命令中将某些特殊字符作为字符串在MATLAB中转义?
答案 0 :(得分:13)
这应该有效:
[status string]=system('grep "Up to" ~/test_linux/vision1.1/log | awk ''{print $7}'' ');
如果您希望它在字符串中显示为字符,则必须使用另一个'
转义'
。关于处理strings in MATLAB,'
是唯一具有特殊含义的字符(它开始和结束字符串),因此它是唯一需要转义的字符。
警告:某些函数可能以不同的方式解释其字符串参数,因此需要以不同方式转义某些字符。这些要求将出现在每个功能的文档中。我最喜欢的几种类型的功能:
%
和\
个字符必须转义为%%
并且分别为\\
。\
开头。答案 1 :(得分:2)
您需要转义命令字符串中的单引号。否则,MATLAB会将它们解释为字符串的结尾,然后分解它后面的内容。