Глобальная переменная для каждого сценария

Ответ - более или менее это ls внешний исполняемый файл. Вы видите его местоположение путем выполнения type -p ls.

Почему не ls встроенный в оболочку, затем? Ну, почему это должно быть? Задание оболочки не состоит в том, чтобы охватить каждую доступную команду, но обеспечить среду, способную к выполнению их. Некоторые современные оболочки имеют echo, printf, и их род как builtins, которые не должны технически быть builtins, но сделаны так по причинам производительности, когда они выполняются неоднократно (прежде всего, в жестких циклах). Не делая их builtins, оболочка должна была бы разветвиться и должностное лицо новый процесс для каждого вызова им, которые могли быть чрезвычайно медленными.

По крайней мере, выполнение ls, внешний исполняемый файл, требует выполнения одного из семейства должностных лиц системных вызовов. Вы могли сделать это без разветвления, но оно заменит основную оболочку, которую Вы используете. Вы видите то, что происходит в том экземпляре путем выполнения следующего:

exec ls; echo "this never gets printed"

Так как образ процесса Вашей оболочки заменяется, текущая оболочка больше не доступна после выполнения этого. Чтобы оболочка смогла продолжить бежать за выполнением ls, команда должна будет быть встроена в оболочку.

Разветвление позволяет замену процесса, который не является Вашей основной оболочкой, что означает, что можно продолжить выполнять оболочку впоследствии.

2
01.09.2014, 07:25
1 ответ

Ошибки указывают на аппаратную проблему с диском, но только в секторах, содержащих данные.

Причина того, что в Windows вы не видите этих ошибок (до сих пор), вероятно, вызвана различиями в программном обеспечении просмотра файлов: большинство браузеров файлов Linux читают больше информации о файлах, из файла при открытии папки, чем это делает проводник Windows. Это делается, чтобы сделать предварительный просмотр, и иметь метаданные для файлов доступны. Вероятно, Windows получает это только при явном запросе.

Можно попробовать скопировать все файлы из Windows на отдельный диск. Если это работает, запустите какой-нибудь тщательный дисковый анализатор на исходном диске, прежде чем продолжать использовать его (после создания полной резервной копии).

-121--244913-

Можно использовать pam_mount.

Прочитайте шаг 5 в этом мини учебном пособии . Обратите внимание, что с этим связана проблема безопасности.

-121--140159-

Если вставить

echo "prevexit=3" > ~/.prevexit

в конце инициированной команды crontab , можно использовать:

source ~/.prevexit

рядом с верхней частью всех сценариев, которые должны включать значение, и использовать его в остальных сценариях как $ prevexit .

Вы, конечно, должны заменить 3 реальной стоимостью, которую вы хотите поделиться.

4
27.01.2020, 22:00

Теги

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