В ядре встроена функция встроенной команды exec
, есть семейство из них на основе execve
, которое обычно вызывается из C.
exec
заменяет текущую программу в текущем процессе, без fork
нового процесса. Это не то, что вы будете использовать в каждом скрипте, который вы пишете, но иногда это пригодится. Вот некоторые сценарии, которые я использовал:
.profile
последнее утверждение говорит что-то вроде: exec appln-program
, поэтому теперь нет оболочки для возврата. Даже если appln-program
выходит из строя, конечный пользователь не может попасть в оболочку, потому что его нет - exec
заменил его. csh
, и все просто вставляли в .login
(файл запуска csh) вызов ksh
. В то время как это сработало, он оставил запущенный процесс csh
, и выход был двухступенчатым, что могло запутать. Поэтому мы изменили его на exec ksh
, который только что заменил программу c-shell оболочкой korn, и сделал все проще (есть другие проблемы с этим, например, тот факт, что ksh
не является оболочкой входа). prog1 -> prog2 -> prog3 -> prog4
и т. Д. И никогда не вернемся, сделайте каждый вызов exec. Вы, очевидно, видели, что exec
используется где-то, возможно, если вы показали код, который прослушивает вас, мы могли бы оправдать его использование.
Изменить: я понял, что мой ответ выше неполный. В оболочках, таких как ksh
и bash
, используются два варианта использования exec
- для открытия дескрипторов файлов. Вот несколько примеров:
exec 3< thisfile # open "thisfile" for reading on file descriptor 3
exec 4> thatfile # open "thatfile" for writing on file descriptor 4
exec 8<> tother # open "tother" for reading and writing on fd 8
exec 6>> other # open "other" for appending on file descriptor 6
exec 5<&0 # copy read file descriptor 0 onto file descriptor 5
exec 7>&4 # copy write file descriptor 4 onto 7
exec 3<&- # close the read file descriptor 3
exec 6>&- # close the write file descriptor 6
Обратите внимание, что интервал очень важен. Если вы поместили пробел между номером fd и символом перенаправления, то exec
вернется к исходному значению:
exec 3 < thisfile # oops, overwrite the current program with command "3"
Существует несколько способов использования этих параметров: ksh use read -u
или print -u
, на bash
, например:
read <&3
echo stuff >&4
Что ж, лучший способ, на мой взгляд, будет поставить флажок div id id с меткой var и просто сделать getElementByID.
Но если вы получите диапазон, как вы говорите, вы всегда можете сделать .parentElement
и получить флажок div.
Вы также можете использовать .closest("div.checkbox");
в sapn, и он будет искать ближайший div с флажком класса.