В скрипте bash я запускаю Vim с параметрами:
vim "-c startinsert" "+normal 2G4|" foo
необходимы двойные кавычки, но их можно заменить на простые:
vim '-c startinsert' '+normal 2G4|' foo
, поскольку эти параметры могут варьироваться от одного файла к другому, я хочу сохранить их в строке, обычно:
opt='"-c startinsert" "+normal 2G4|"'
, а затем:
vim $opt foo
, но это неработать, и я попробовал каждую комбинацию кавычек, двойных кавычек, экранирования,…
На самом деле, единственный способ, которым я нахожу это работающим, состоит в том, чтобы сохранить только одну опцию на строку:
o1="-c startinsert"
o2="+normal 2G4|"
vim "$o1" "$o2" foo
Итак, возможно ли хранить две (или более) опции в строке?Потому что при попытке bash кажется, что они интерпретируются как имя файла, например:
opt='"-c startinsert" "+normal 2G4|"'
vim "$opt" foo
Vim откроет два файла:
""-c startinsert" "+normal 2G4|""
foo
вместо открытого foo
с параметрами "-c startinsert" "+normal 2G4|"
.