Как запустить программу в тексте только режим, если это поддерживает тихое выполнение

Вот сценарий, который делает это чисто (надо надеяться).. Я не с печатью/методами привязки, таким образом, я не уверен, корректно ли упорядочивание, но это, конечно, работает от центра... Я просто не делаю knwo сворачивающаяся/сокращающая последовательность, которой Вы требуете (вне Вашего примера на 16 страниц)... Я включал демонстрационный вывод на 24 страницы.

pages=${1:-16}
pagesPerSheet=4
sheets=$((  (pages/pagesPerSheet) 
          +((pages%pagesPerSheet)>0) ))
pagesTot=$((sheets*pagesPerSheet))

Ob=0               # overall begin
Ox=$((pagesTot+1)) # overall max 
Hb=$((Ox/2))       # 2nd Half begin
hx=$((Hb+1))       # 1st half max

for ((s=sheets;s>0;s-=2)) ;do
   printf '%su,%su,%s,%s,%su,%su,%s,%s%s' \
           $((Ob+=1)) $((Ox-=1)) \
           $((hx-=1)) $((Hb+=1)) \
           $((Ox-=1)) $((Ob+=1)) \
           $((Hb+=1)) $((hx-=1)) \
           $(((s>2)) && echo ,)
done; echo  

вывод

# 16 page
1u,16u,8,9,15u,2u,10,7,3u,14u,6,11,13u,4u,12,5
# 24 page
1u,24u,12,13,23u,2u,14,11,3u,22u,10,15,21u,4u,16,9,5u,20u,8,17,19u,6u,18,7

Этот фрагмент кода печатает графическое представление

Ob=0               # overall begin
Ox=$((pagesTot+1)) # overall max 
Hb=$((Ox/2))       # 2nd Half begin
hx=$((Hb+1))       # 1st half max

for ((s=sheets;s>0;s-=2)) ;do
   printf '%2su %2su | %2su %2su\n%2s  %2s  | %2s  %2s\n-------   -------\n' \
           $((Ob+=1)) $((Ox-=1)) $((Ox-=1)) $((Ob+=1)) \
           $((hx-=1)) $((Hb+=1)) $((Hb+=1)) $((hx-=1))
done

вывод

# 16 page
 1u 16u | 15u  2u
 8   9  | 10   7
-------   -------
 3u 14u | 13u  4u
 6  11  | 12   5
-------   -------

# 24 page
 1u 24u | 23u  2u
12  13  | 14  11
-------   -------
 3u 22u | 21u  4u
10  15  | 16   9
-------   -------
 5u 20u | 19u  6u
 8  17  | 18   7
-------   -------
0
02.05.2013, 19:45
2 ответа

Можно использовать виртуальный X-сервер как Xvfb для этого. Это (не только) для X что /dev/null для консоли. Вы работаете Xvfb и ДИСПЛЕЙ АППАРАТА к нему.

У меня нет практического опыта с этим так, я не могу предоставить Вам подробную информацию. Но это должно быть способом пойти.

0
28.01.2020, 05:02
  • 1
    хорошей идеи, но может это быть обойтись без установки? Сервер был запросом некоторым аудитором к отключенным X-окнам полностью, я не уверен, может ли это быть позволено. –   02.05.2013, 20:32
  • 2
    @AntonyLee Мы находимся в эру перед Уэйлендом, таким образом, легко возможно перенаправить это к IP-адресу (другого сервера). Будет едва любой трафик (в зависимости от программного обеспечения, конечно). Аргументы против X на сервере не применяются здесь. Вы не должны иметь X установленный для этого. Если бы было запрещено использовать виртуальный X-сервер затем, то можно было бы спросить, что обнаруживает сделанный позволить выполнение X-клиентов. –  Hauke Laging 02.05.2013, 20:38

Вы могли попытаться запустить программу в tty только, чтобы удостовериться, что она не откажет на Вас, если не будет никакого "дисплея".

Если это будет работать затем, вероятно, то это будет работать также:

$(unset DISPLAY; java your_stuff_here)

то, что это делает, породить подоболочку (следовательно $ (...)) и очищает переменную ДИСПЛЕЯ.

Я помню эту работу для некоторых приложений GUI, которые я хотел запустить без GUI

0
28.01.2020, 05:02

Теги

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