1. Alias命令
[She@She ~]$ alias ... alias matlab='"/usr/local/MATLAB/R2013a/bin/matlab"' ...
(2)編輯文件~/.bashrc。更改部分見彩色文字的標注。
[She@She ~]$ vi ~/.bashr
# .bashrc
...
alias matlab='"/usr/local/MATLAB/R2013a/bin/matlab"'
...
更改后:
# .bashrc
...
alias matlab='"/usr/local/MATLAB/R2015b/bin/matlab"'
...
(3)用source命令更新環境變量,使更改生效。
[She@She ~]$ source ~/.bashrc
(4)查詢系統現有的別名,以確認更新成功。
[She@She ~]$ alias ... alias matlab='"/usr/local/MATLAB/R2015b/bin/matlab"' ...
2. 用 ln 命令修復 shell 調用 matlab 時的 bug
Bug描述:用 alias 命令指定的簡寫,可以在終端啟動matlab,但不能在 shell 文件中運行matlab命令。
Bug修復:用 ln -s 生成軟鏈接,以搭配使用。
(1)在終端可以正常啟動 matlab
[She@She ~]$ matlab -nodesktop -nojvm < M A T L A B (R) > Copyright 1984-2015 The MathWorks, Inc. R2015b (8.6.0.267246) 64-bit (glnxa64) August 20, 2015 For online documentation, see http://www.mathworks.com/support For product information, visit www.mathworks.com. >>
(2)bug:在 shell 腳本中無法使用簡寫命令調用 matlab,只能使用含絕對路徑的完整命令來調用 matlab:
測試 m 文件 /home/She/tmp.m:
pause(60);
測試 shell 腳本 /home/She/test.sh:
#!/bin/bash MatlabFile='/home/She/tmp.m' chmod +x ${MatlabFile} /usr/local/MATLAB/R2015b/bin/matlab -nodesktop -nosplash -nojvm -r "run ${MatlabFile}; exit;" # 可正常運行 matlab -nodesktop -nosplash -nojvm -r "run ${MatlabFile}; exit;" # 報錯 exit
shell 報錯如下:
[She@She ~]$ ./test.sh ./test.sh: line 9: matlab: command not found [She@She ~]$
(3)用 ln 命令修復 bug
ln 命令的用法為: ln [參數] [源文件或目錄] [目標文件或目錄]
注意:源文件和目標文件的順序千萬不要搞錯了!
使用 "ln" 命令生成軟鏈接 /usr/bin/matlab,使它指向 matlab 的啟動程序:
[She@She ~]$ sudo ln -s /usr/local/MATLAB/R2015b/bin/matlab /usr/local/bin/matlab [sudo] password for She:
(4)再次測試 shell 腳本,一切正常
[She@She ~]$ ./test.sh [She@She ~]$