cd parent_directory/
for i in {-11..-10}
do
for j in -2 0
do
(
cd "E${i}_G/E${j}_U/"
ls -l ander ander.band ander.data
cat ander.in
cat ander.log
pwd
)
done
done
Примечания:
Вы можете зациклиться на ряде чисел, используя обозначение скобок:
для i в {-11. .-10}
Можно также выполнить цикл над явным списком элементов:
для j в -2 0.
Можно изменить каталог так, чтобы в нем было место, зависящее от переменных:
cd "E${i}_G/E${j}_U/".
Аргументом к команде cd
является директория, указанная относительно текущей директории. После того, как мы выполнили нашу работу в этой директории, мы хотим вернуться обратно в директорию parent_. Есть много способов справиться с этим, но один простой способ сделать это - поместить команду cd
и команды, которые должны быть выполнены в этом каталоге, в подоболочку, обозначенную паренами. После выхода из парен, каталог автоматически восстанавливается в том виде, в котором он был до этого.
В этом контексте «экземпляр Emacs» относится к одному процессу.
Нет, Emacs не держит поток для каждого открытого буфера. В моем текущем сеансе 129 открытых буферов (около 100 открыты из файлов, остальные являются буферами вывода для определенных подчиненных процессов - интерпретаторов python, ruby, elixir, папки wanderlust и сводных представлений, средств проверки синтаксиса flycheck-mode
и т.д. .) но только 3 активных потока.
Основным процессом Emacs является сервер, и каждый emacsclient
работает в своем собственном процессе, взаимодействуя с сервером через сокеты домена UNIX. Когда сервер получает запрос на соединение от клиента, он открывает запрошенный файл в новом буфере в новом окне во фрейме сервера. emacsclient
имеет единственную функцию отправки запрошенного файла на сервер и ожидания возврата сервера после того, как вы закончите редактирование буфера файла.
Обычно клиенты и серверы работают как отдельные процессы - нет гарантии, что клиент и сервер находятся в одной сети, не говоря уже об одном и том же компьютере. Некоторые серверы запускают новый поток для обработки каждого входящего клиентского соединения (например, для этого может быть построен Apache), но клиент - это отдельный процесс, возможно, на другой машине на другой стороне планеты. И обратите внимание, что разделяемая память - это форма межпроцессного взаимодействия, как, например, сокеты домена UNIX.