setenv от awk в tcsh

[

] полагаю, что URI заканчивается пробелом: []grep -o 'magnet://[^ ]*' имя файла[][

] [

][]Update[]: []grep -o "magnet:?xt[^']*" имя файла[][

] [

][]Обновление[]: []cat * | grep -o "magnet:?xt[^']*"[] или []grep -oh "magnet:?xt[^']*" *[][

]
1
06.02.2015, 05:09
1 ответ

setenv является командой только csh, но system() прогоняет свои аргументы через оболочку Борна (/bin/sh), а не csh. Для оболочки Борна вам потребуется команда Export VARIABLE=value.

Однако, даже если вы это сделаете, это будет неэффективно. system() запускает новую оболочку и выполняет команду в этой оболочке. Как только команда завершается, эта оболочка - и ее окружение - исчезают. Таким образом, переменная окружения, которую вы устанавливаете, быстро исчезает.

Что вам нужно сделать, так это использовать awk, чтобы сгенерировать список команд csh для выполнения и вывода их затем (не пытайтесь их выполнить). Затем вам нужно заставить оболочку, которая вызвала awk прочитать вывод awk и запустить его:

eval `the awk command`
2
27.01.2020, 23:37

Теги

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