Под управлением сценарий может определить регистрирующийся контекст?

Если у Вас нет файла SCCS еще для quit.c Вы имеете к

mkdir SCCS
sccs create quit.c

это создаст s.quit.c в SCCS

Вы можете редактирование с sccs edit quit.c и фиксация с sccs delta quit.c.

Необходимо быть ablte для попытки этого путем вырезания и вставки:

mkdir sccs_test
cd sccs_test
echo 'hallo' > quit.c
mkdir SCCS
sccs create quit.c
sccs edit quit.c
echo 'bye' >> quit.c
sccs delta quit.c

Последняя команда просит вход комментария.

2
07.04.2014, 23:59
4 ответа
[1126742] Вы можете вызвать

lsof

192.168.1.1 (or 192.168.2.1 or whatever the router's IP really is)

, чтобы перечислить открытые файлы процесса оболочки. Используйте [1127269]-a -p $$[1127270] для ограничения вывода в оболочку процесса ([1127271]$$[1127272]), [1127273]-d 1[1127274] для ограничения вывода в дескриптор файла 1 (например), и [1127275]-F n[1127276] для распечатки вывода в разобранном виде. Вот фрагмент оболочки, который справляется с произвольными символами в именах файлов:

ph.cox.net (again, except matching your own ISP's domain as was already showing)

Если имя файла не содержит новой строки, то можно обойтись без [1127277]output_file=$(lsof -a -p $$ -d 1 -F pn | sed -n '2s/. //p')[1127278].

local

Обратите внимание, что имя файла может не всегда существовать, в частности, если файл был удален.Под Linux другой способ доступа к именам файлов - [1127279]/proc/$$/fd[1127280]: [1127281]/proc/$$/fd/1[1127282] - это слегка магическая символическая ссылка на файл, открытый оболочкой на файловом дескрипторе 1 (ссылка работает, даже если имя файла, возвращенное по [1127283]readlink[1127284], не существует, например, в случае удаленного файла).

Обычно очень плохая идея использовать полученную таким образом информацию. Если кто-то вызовет ваш скрипт с перенаправленным в файл выводом, ему не понравится, если вы будете вести себя по-другому из-за расположения файла, или повлияете на файл другими способами, нежели добавление к нему. Есть одно исключение: вы можете захотеть реагировать по-разному в зависимости от того, пишите ли вы на терминал или на что-то другое (труба, сокет, файл), например, для отображения цветов или индикаторов прогресса на терминале. Есть специальный тест, чтобы определить, подключен ли файловый дескриптор к терминалу:

DNS Servers:
192.168.1.1

Search Domains:
local
ph.cox.net

2
27.01.2020, 21:52

OUTPUT:

OUTPUT:

5
27.01.2020, 21:52
[1125563] В вашем случае [1126011]STDOUT[1126012] будет сохранен в файл [1126013] output.log[1126014] и [1126015]STDERR[1126016] будет сохранен в файл [1126017]error.log[1126018]. Оба файла сохраняются в одну директорию с помощью [1126019]script.sh[1126020].

Если Вы хотите, чтобы Ваша программа "знала путь к этим файлам", Вы должны использовать абсолютный путь:

0
27.01.2020, 21:52
[1125575] Файлы [1126025]output.log[1126026] и [1126027]error.log[1126028] создаются в текущей директории, т.е. значение переменной [1126029]$PWD[1126030]. Если вы хотите, чтобы ваша программа использовала эти файлы позже, просто сохраните их каталог в переменной перед запуском вашего скрипта. Вот пример :
  • 0
    27.01.2020, 21:52

    Теги

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