Используйте CollectionUtils.filter (набор, предикат) , от Apache палата общин.
Я пытался использовать подобный сценарий для создания выполненным сценарий и исполняемый файл. Это функционирует в обоих случаях.
Случай исполняемого файла /usr/bin/xlogo
:
#!/bin/bash XTERM="/usr/bin/xterm -bg RED -e /usr/bin/xlogo" exec $XTERM 2>&1 &
терминал запускается, таким образом, он делает двоичный файл
xlogo
; исходная оболочка дает мне подсказку назад, потому что конец сценария его выполнение. Никакая ошибка не возвращается.
( Это заканчивается хорошо, потому что xterm запускается ).
, Если я нажимаю CTRL+C, когда фокус находится на xterm окно , я прерываю xterm сессия и исполняемый файл. Если я закрываю исполняемый файл, xterm сессия конец также.
Случай сценария, что я делаю исполняемый файл с chmod u+x MyScript.sh
#!/bin/bash pwd # To confirm in which directory it works echo Please insert something read a # It asks to input something echo inserted $a We sleep for 10 seconds sleep 10 # It will wait 10 seconds to exit
, Он работает, снова как в двоичном случае.
, Если я пытаюсь прервать сценарий, это сделает конец xterm сессия также.
Это показывает ясно что xterm сессия выполнения от тока путь .
Поэтому, если Ваш файл является исполняемым файлом, действительно не имеет значения, если это - двоичный файл или сценарий.
Классик отлаживают контрольный список:
/usr/bin/xterm
Проверка, если это - исполняемый файл (в примере с ls -l /home/ambuj/practice/myBinary
).
, Если это - исполняемая попытка выполнить его от текущего местоположения (каталог), чтобы видеть, должно ли это быть выполнено от детали путь , если требуется некоторый файл где-нибудь, или если это компилируется для Вашей архитектуры...
Примечание, что , если выполнение из Вашего двоичного файла (или сценарий) концы Ваш терминальный сеанс сразу закончится после , и оно не имеет значения если из-за ошибки или из-за естественные причины .
Никогда не забывают, что ошибка, более трудная найти, является той, которая не делает существует: таким образом, если Ваша программа будет выполнена, и закончите быстро, она будет казаться Вам, что Ваш xterm откроется и закроется, ничего не делая.
read a
и сценарий будет ожидать, пока Вы не вставите что-то и после того, как это продолжится естественно . Если Ваш сценарий берет вход от перенаправления, можно записатьread a </dev/tty
. Только для забавы делаютcat /dev/tty
[CTRL-D или CTRL-C для выхода]. – Carlos Tadeu 14.05.2020, 13:50