Начало кавычки

У меня есть следующие переменные:

file=document.mat
path=~/files

Теперь, я хочу звонить, matlab-функция func () (не волнуйтесь, не знаете ли Вы Matlab, она действительно не имеет значения). Функция берет в качестве входного параметра файл в кавычках как так:

func("/path_to_file/file.extension")

или

func('/path_to_file/file.extension')

Однако вызывая функцию от терминала, я должен установить саму функцию в двойных кавычках:

$matlab "func('/path_to_file/file.extension')"

(Для видимости, опущенной некоторые опции команды такой как -nosplash -r).

Теперь, аргументом функции func должна быть переменная (по причинам), таким образом, я хочу заменить /path_to_file/file.extension $path/$file. Это - то, где проблема возникает:

$matlab "func("$path/$file")"

Это не работает по очевидным причинам.

$matlab "func('$path/$file')"

Это не работает, потому что одинарные кавычки подавляют расширение переменной.

$matlab "func(`$path/$file`)"
bash:~/files/document.mat: Permission denied

Что я могу сделать для передачи переменных функции в""?

0
задан 27 April 2017 в 03:34

1 ответ

Необходимо использовать следующий формат кавычек:

$matlab "func('$path/$file')"

Замена $matlab с echo (выполняемый на ударе GNU, версии 4.3.46) заканчиваются с:

$ echo  "func('$path/$file')"
func('/home/username/files/document.mat')
0
ответ дан 3 November 2019 в 09:04

Другие вопросы по тегам:

Похожие вопросы: