1
我試圖在使用命令行界面的外部程序中使用Maple函數。函數的數據將通過文件傳遞。爲了演示這個問題,我創建了兩個文件:/home/user_name/test.mpl和/home/user_name/test_data.txt。將文件名作爲字符串通過命令行傳遞到Maple
test.mpl( 「貓」 演示使用楓功能):
#filename := "/home/user_name/test_data.txt":
print(filename):
i := parse(readline(filename)):
poly := parse(readline(filename)):
s := parse(readline(filename)):
print(cat(convert(poly+i,string), " ", s)):
test_data.txt:
1
x^2 * y + 1
"A string."
按照manual,我可以使用這樣的事情(但是這示例不包括使用兩個文件,一個作爲代碼,另一個作爲參數):
/usr/local/maple/bin/maple -c 'datafile:="/tmp/12345.data";' -c N:=1;
當我嘗試
/path/to/maple -c 'filename:="/home/user_name/test_data.txt":' -q /home/user_name/test.mpl
我收到以下錯誤:
Error, incorrect syntax in parse: `/` unexpected (near 11th character of parsed string)
如果我刪除第一/
在文件名的字符串,我得到下面的輸出(相關readline
錯誤前):
/ home \
|-------------------| . txt
\user_name test_data/
它清楚地表明文件路徑不會被解析爲字符串(但可能是某種表達式)。可能我應該使用一些轉義序列,Maple或shell,但我的嘗試都沒有奏效。
如果我在test.mpl中取得文件名(取消第一行的註釋並刪除-c
參數),它雖然有效,但這不是我所需要的。
如何通過命令行傳遞文件名作爲字符串(可能不使用-c
)?
我真的以爲我試了一下。謝謝! – anatsych