Вы можете изменить разрешение на монтирование папок, чтобы другие пользователи могли получить к ним доступ.
chown -R user:group <folder name>
P.S Смонтируйте папку на раздел перед запуском chown.
После небольшого чтения я нашел это , любезно предоставленное @lesmana, которое может помочь
Запустите скрипт с помощью
script -q -a -f logfile -c 'sh./yourscriptname'
Чтобы скрыть это ведение журнала от «пользователя», я просто поместил этот однострочный скрипт в качестве оболочки для целевого сценария, а затем вызвал целевой сценарий из оболочки.
РЕДАКТИРОВАТЬ:Я понял, что tee
может читать из оригинала stdin
, если к нему ничего не передано, поэтому я подумал, что добавлю другое решение на случай, если оно поможет любому, кто наткнется на это позже.
Спасибо @steeldriver за указание на то, что read -p
печатает в stderr
, а не stdout
. Так что самое близкое, что у меня есть, это:
read -p " - This directory is not empty, purge? (Y/N): " choice 2> >(tee -a $mylogs)
echo $choice >> $mylogs
Источник и объяснение происходящего можно найти здесь . В этом конкретном примере первая строка может перенаправить stderr
на tee
для печати приглашения в $mylogs
и на stdout
.
Тем не менее, read
, кажется, делает что-то, чтобы сделать невозможным перехват пользовательского ввода и отправку его $mylogs
, а не только $choice
.
Другое решение проще и короче, но менее удобно для пользователя и читабельно (, если только многие люди не знают, что read
— не единственная команда для такого простого чтения ввода):
echo -n " - This directory is not empty, purge? (Y/N): " | tee -a $mylogs
choice=$(tee -a $mylogs)
Таким образом, во второй строке tee
предоставляет способ предоставить пользователю ввод для как $mylogs
, так и $choice
, в отличие от read
, но, очевидно, нет опции подсказки (-p
). Так еще 2 строчки.
Кроме того, вы должны нажать Enter , затем Ctrl + D для отправки. Это может быть плохо для моей ситуации Y / N, но может быть хорошо для многострочных ответов -, поскольку вы можете нажать Enter несколько раз, прежде чем нажимать Ctrl + D , чтобы остановиться.