我想傳遞字符串路徑到我定義並遇到問題的matlab函數。這裏是我嘗試的總結:在Matlab bash中傳遞路徑字符串作爲參數
我想傳遞一個字符串變量(在這種情況下是一個路徑)在bash腳本中聲明將該變量傳遞給我自己的函數。例如
var=/usr/local/
matlab -nosplash -nodesktop -nojvm -r "my_function($var)"
我得到了錯誤:
-bash: syntax error near unexpected token `('
爲了解決這個問題,我想:
var=/usr/local/
matlab -nosplash -nodesktop -nojvm -r "my_function\($var\)"
這是不是我找到標準的引用我在網上找。無論如何,MATLAB運行,但我得到的錯誤:
Error: The input character is not valid in MATLAB statements or expressions.
要查看變量是否正確轉換,我試着回聲:
var=/usr/local/
echo matlab -nosplash -nodesktop -nojvm -r "my_function\($var\)"
,實現輸出是:
matlab -nosplash -nodesktop -nojvm -r "my_function(/usr/local/)"
由於變量不是字符串,錯誤是有道理的,我試過了:
var=/usr/local/
var=$(printf "'%s'" $var)
echo matlab -nosplash -nodesktop -nojvm -r "my_function\($var\)"
表示:
matlab -nosplash -nodesktop -nojvm -r "my_function('/usr/local/')"
所以,我運行上面的代碼,但我仍然會遇到的錯誤:
Error: The input character is not valid in MATLAB statements or expressions.
要檢查是否在路徑上存在的功能,我想這兩個PWD和存在()爲文件。例如
matlab -nodesktop -nosplash -nojvm -r "exist('my_function.m')"
在這種情況下,奇怪的是,我並不需要\(\)
和返回2,這意味着文件在當前路徑存在。
我用盡想法嘗試。所以讓我知道如何解決這個問題。
這是AA bash的問題不是一個matlab題 – crowdedComputeeer