#!/bin/bash
cobol_program &
echo "The COBOL program is running in the background with PID: $!"
Посмотрите man
страница для bash
под 'Специальными Параметрами'
Вы должны mkfifo
установить двунаправленный |pipe
между двумя машинами и написать на него, вместо того, чтобы полагаться на вставку в шпаклевочный терминал. Но если вы должны использовать шпаклевку, то вы должны выключить управление ее потоком в настройках и использовать режим raw - stty raw
на стороне хоста и найти опцию raw terminal в настройках шпаклевки.
Вы можете приблизиться к тому, что вам нужно, используя буфер альтернативного экрана.
Большинство терминальных эмуляторов (all?) имеют 2 экранных буфера, между которыми можно переключаться. Таким образом, вы переключаетесь на альтернативный экранный буфер, выполняете команды, а затем снова переключаетесь на основной.
Просто выполните следующие команды перед командами:
tput smcup
И в конце выполните
tput rmcup
Однако на экране все равно отобразится команда tput smcup
.
Единственный способ скрыть команду - добавить к ней привязку ключа (например, ESC+t). Я знаю, что zsh
может сделать это, но я не знаю о csh
.
Если у вас нет команды tput
, вы можете эхом выдать необработанные эвакуационные коды.
Для шпаклевки это будет:
echo -e '\e[?47h'
и
echo -e '\e[2J\e[?47l'
Я не знаком с AutoHotKey, поэтому если вы не можете найти решение там, читайте дальше.
POSIX определяет команду read
, которая позволяет принимать строку ввода, подавляя эхо терминала (то, что вы видите при вводе) с помощью -s
. Это также встроенная функция bash, но вы можете проверить свою систему, чтобы убедиться, что она присутствует как отдельная.
В противном случае, ищите здесь, вы можете сделать то же самое, используя stty
(еще один отдельный инструмент) с помощью csh:
stty -echo # turn echo off
# do your input
stty echo # turn echo back on