Я хотел бы объединить строки вместе, чтобы создать командную строку в сценарии csh, file1.csh. Однако csh продолжает жаловаться на ошибки для переменной commandString, и я действительно не знаю, что я сделал неправильно. Вот часть кодов.
set var1 = "Hat"
set var2 = 100
set embeddedString = 's/'$var1' =.*$/'$var1' = '$var2'/g'
set commandString = "sed -i ' "$embeddedString" ' productPrice.txt"
echo $commandString
Моя цель - установить переменную commandString как нечто вроде
sed -i 's/Hat =.*$ /Hat = 100/g' productPrice.txt
Затем эта строка команды будет вставлена в другой файл сценария, file2.csh. file2.csh - это фактический файл сценария, который выполняет команду замены цены Hat. Кроме того, значения var1 и var2 считываются из файла priceUpdateList.txt, поэтому они не являются фиксированными значениями. Другими словами, я не могу просто набрать Hat и 100 в переменной commandString. Кто-нибудь знает, как правильно использовать кавычки для генерации командной строки в csh?
Огромное спасибо,
cmdStr = "sed -i \' ...
. Чтобы действительно запустить $cmdStr, вам понадобитсяeval
, верно? Удачи. - person shellter   schedule 10.11.2011set -vx
как и все остальные оболочки?). Затем вы можете получить некоторое представление о том, как интерпретируются переменные. Удачи. - person shellter   schedule 10.11.2011