Запись в файл с тройником из скрипта bash - PullRequest
0 голосов
/ 04 сентября 2018

Выдержка bash-скрипта ниже показывает базовый процесс egrep из большой системы меню, которую я написал, и выводит на терминал, а также пользовательский файл, имя которого хранится в переменной searchlog_bank. Хотя searchlog_bank действительно содержит имя файла, и я вижу вывод grep в терминале, файл не записывается в PWD. Выполнение этой же команды непосредственно в терминале, однако, приведет к тому, что вывод будет направлен как на tty, так и на указанное имя файла.

Это должно быть проблемой с процессами, которых я здесь не вижу? При необходимости можно опубликовать весь сценарий, но на самом деле это всего лишь механизмы меню, и в этом суть моей проблемы.

!#/bin/bash

...
search(){
    echo "search log is $searchlog_bank"
    read -p "Press Enter to continue..."
    if [ saveconfirm_bank!=“NOT SAVING SEARCH LOG” ]; then
        egrep -io “.*keyword_bank.*” $csvfile_bank | tee ./$searchlog_bank
        read -p “<Search complete. Press Enter to continue>”
        savelog_bank=“<NOT SAVING SEARCH LOG>”
        clear
        menu_display
    else
        egrep -io ".*$keyword_bank.*" $csvfile_bank
        read -p "<Search complete. Press Enter to continue...>"
        clear
        menu_display
        fi
}

#script init global variables
csvfile_bank="<NOT LOADED>"
searchlog_bank="<NOT SAVING A SEARCH LOG>"
fileext_bank="<NOT ENTERED>"
keyword_bank="<NOT ENTERED>"
regex_bank="<NOT ENTERED>"

#main script body
clear
menu_display
while [ $selection != “8” ]; do
    case $selection in
        1) readcsv;;
        2) enter_searchlog;;
        3) readext;;
        4) readkeyword;;
        5) readregex;;
        6) clearparam;;
        7) search;;
        8) echo "See You Space Cowboy"
           break;;
        *) menuerror;;
    esac
done

...
...