Я пишу csh
сценарий, и мне нужно выполнить команду, из командной строки будет:установить CSH команды с параметрами в пределах «»
$ повелевать -c «: переменная = а + Ь»
Так что я стараюсь:
набор CMD = "Команда -c " ' ": переменная = а + Ь"'" -o выходной_файл"
эхо $ CMD
$ cmd
Строка cmd
показана правильно с эхом. Но когда я пытаюсь выполнить $cmd
, я получаю сообщение об ошибке, указывающее, что аргумент -c
не распознается. Сообщения об ошибках: = а + Ь»
Т.е: вар часть отсутствует
Любой совет
не использовать 'csh'? Шутки в сторону! , Такая проблема сложна на любом языке оболочки, и все это связано с тем, что можно правильно управлять цитированием. Есть места в csh, цитирующие, что «просто не работают так, как должны», и то, что вы пытаетесь сделать правильно, - это самые большие слабые места csh. Есть много других причин, чтобы не создавать скрипты в csh, искать в Интернете для 'csh считаются вредоносными' и' csh whynot'. Если вы должны продолжить, найдите старую книгу инструментов O'Reilly Unix Power Tools и прочитайте весь материал о csh. Наконец, используйте shebang как '#!/Bin/csh -fvx' ...' vx', дающий вам отладочную/трассировку. GoodL – shellter
Несколько других комментариев. Также забыл подключить действительно лучшую книгу о 'csh' http://www.amazon.com/The-Unix-Shell-Field-Guide/dp/013937468X. Самый симпатичный онлайн-ресурс для csh, о котором я знаю, - http://www.grymoire.com/Unix/Csh.html (Начать там). Если вы должны упорствовать, и вы не знаете о 'eval' cmd, то это может вам помочь, но это займет некоторое время, чтобы понять И это обычно считается икрой сатаны, поэтому будьте готовы к этому, когда вы публикуете Q с 'eval'. Наконец, если вам действительно нужна эта функциональность, вы найдете ее намного более расширяемой в ksh или bash – shellter