первый пост здесь, но скрывался целую вечность. я целую вечность гуглил, но не мог найти то, что мне нужно (множество тем, занимающихся темами, которые не запрашивают того, что тема предлагает для этого... ). не новичок в awk или сценариях, просто немного заржавел:)
Я пытаюсь написать awk-скрипт, который будет устанавливать значения env оболочки при запуске -, чтобы другой bash-скрипт мог подобрать и использовать его позже. я не могу просто использовать стандартный вывод из awk, чтобы сообщить об этом значении, которое я хочу установить (, то есть «экспортировать что угодно = awk cmd here
» ), так как это уже направлено в «файл результатов», который создает awkscript (плюс я в любом случае иметь более одной переменной для экспорта в окончательный код ).
В качестве примера тестового сценария для демонстрации моей проблемы:
echo $MYSCRIPT_RESULT # returns nothing, not currently set
echo | awk -f scriptfile.awk # do whatever, setting MYSCRIPT_RESULT as we go
echo $MYSCRIPT_RESULT # desired: returns the env value set in scriptfile.awk
внутри scriptfile.awk я безуспешно пытался ()
1/ )построение и выполнение специальной строки напрямую:
{
cmdline="export MYSCRIPT_RESULT=1"
cmdline
}
2/ )с помощью системной функции:
{
cmdline="export MYSCRIPT_RESULT=1"
system(cmdline)
}
... но они не работают. Я подозреваю, что эти 2 команды создают подоболочку в оболочке, из которой выполняется awk, и делают то, что я прошу (, что подтверждается касанием файлов в качестве теста ), но после завершения «cmd»/системных вызовов подоболочка умирает, к сожалению, забирая все, что я установил с ней -, поэтому мои изменения настроек env не придерживаются точки зрения «вызывающего awk».
поэтому мой вопрос: как вы на самом деле устанавливаете переменные env в awk напрямую , чтобы вызывающий процесс мог получить доступ к этим значениям env после завершения выполнения awk? это реально возможно?
кроме специальных / системных способов, описанных выше, которые, как я доказал, не работают для меня,я не понимаю, как это можно сделать (, кроме как записать эти значения в «случайный» файл где-нибудь, чтобы их взял и прочитал вызывающий скрипт, который в любом случае немного грязный ), следовательно, помогите!
все идеи/предложения/комментарии приветствуются!