我的工作计划如下:

#!/bin/bash


#SBATCH -o ./out/%x.%j.%N.out
#SBATCH -e ./out/%x.%j.%N.err
#SBATCH -D ./
#SBATCH -J matlab_serial_batch_job
#SBATCH --nodes=1
#SBATCH --tasks-per-node=1
#SBATCH --cpus-per-task=1
#SBATCH --time=0:30:00
 

module load slurm_setup
module load matlab/R2021a-generic
 

NROWA=1000
NCOLA=2000
NROWB=2000
NCOLB=5000
MYSTRING='blablabla'
 

# Run MATLAB
matlab -nodisplay -singleCompThread \
       -r "matmul_serial([$NROWA $NCOLA], [$NROWB $NCOLB], $MYSTRING);"

正如您可能看到的,我想设置一个名为MYSTRING的字符串变量,并将其传递给MATLAB函数matmul_serial.然而,我得到了以下错误:

Unrecognized function or variable 'blablabla'

对于那些整数变量NROWANROWBNCOLANCOLB,它们工作得很好.在这种情况下,如何正确设置和传递字符串变量MYSTRING

推荐答案

实际上,在赋值过程中,Bash会对单引号进行条带化.

❯ MYSTRING='blablabla'
❯ echo $MYSTRING
blablabla

你可以试着避开这样的引用:

❯ MYSTRING=\'blablabla\'
❯ echo $MYSTRING
'blablabla'

否则,Matlab错误地认为blablabla是变量或函数的名称,而不是字符串文字.不过,这个错误消息有误导性,因为它在blablabla左右加了一个引号.但这些单引号并不是你在MYSTRING=...作业(job)中插入的,如下面在一个交互式Matlab课程中所示.

$ matlab
MATLAB is selecting SOFTWARE OPENGL rendering.

                                                                            < M A T L A B (R) >
                                                                  Copyright 1984-2019 The MathWorks, Inc.
                                                                  R2019a (9.6.0.1072779) 64-bit (glnxa64)
                                                                               March 8, 2019


To get started, type doc.
For product information, visit www.mathworks.com.

>> blablabla
Undefined function or variable 'blablabla'.

Linux相关问答推荐

在Zenity进度窗口上单击取消后如何停止bash脚本

在Linix&;Mac中运行Reaction本机项目时出现问题

如何在 if ... elif struct 中判断 bash 命令的退出状态?

8 个半小时范围的 Crontab 表达式

文件未在脚本中使用 cp 命令复制到 Docker 容器中

如何让 Flutter 用鼠标拖动而不是滚轮滚动? (Linux)

在 Windows 上通过 SSH 运行 django 应用程序

问题:Virtio rpmsg 总线 virtio0:收到的 msg 没有收件人 - 在 Yocto Hardknott - imx7d-pico

如果 bash 中已经存在文件名,则创建新文件但添加数字

如何在 Linux 上捕获原始 HID 输入?

Linux time 命令输出中 real、user 和 sys 的含义

Linux/Unix 手册页语法约定

来自远程主机的 mysqldump

如何排除 tar 的绝对路径?

使用 linux 命令行 (bash) 从网络摄像头拍照

使用 ssh 判断远程主机上是否存在文件

如何让 cron 每N分钟运行一次,其中 n % 5 == 1?

Bash:如何标记字符串变量?

如何将初始输入通过管道传输到随后将是交互式的进程中?

Postgresql -bash:psql:找不到命令