쉘 스크립트를 통해 명령줄에 텍스트 추가

쉘 스크립트를 통해 명령줄에 텍스트 추가

다른 터미널을 여는 쉘 스크립트가 있습니다.

터미널을 연 후 터미널에서 다른 응용 프로그램을 수동으로 시작합니다. 쉘 스크립트를 통해 터미널의 명령줄에 텍스트(예: bin/binfile)를 추가하여 이를 자동화하고 싶습니다. 중요한 점은 텍스트만 입력하고 싶기 때문에 스크립트를 실행한 후에도 애플리케이션을 시작하려면 터미널에서 Enter 키를 눌러야 한다는 것입니다. 명령을 자동화하고 싶지 않습니다. 그게 가능합니까?

답변1

bash를 사용한다고 가정하면, 한 번의 키 입력으로 원하는 명령을 출력하도록 readline 단축키를 구성하여 가까이 다가갈 수 있습니다.

export INPUTRC=`mktemp`
trap "rm -f $INPUTRC" EXIT
echo '"\eOP": "my command"' > $INPUTRC
xterm

INPUTRC는 readline에서 사용하는 환경 변수입니다. $INPUTRC를 열고 여기에서 구성을 읽으려고 시도합니다.

readline 구성은 "\eOP": "my command"매크로를 F1 키에 바인딩합니다(내 터미널에 일련의 ASCII 이스케이프 문자로 표시됨 my command).\eOP\e

이제 xterm에서 F1을 누르면 my command.

이 트랩은 터미널이 닫힌 후 임시 구성 파일이 지워지도록 보장합니다.

(F1에 바인딩하는 올바른 readline 철자는 다를 수 있으므로 그 이외의 다른 것을 사용해야 할 수도 있습니다 \eOP. 이미 ~/.inputrc가 있는 경우 생성하는 임시 파일에 이를 포함시킬 수 있습니다.)

편집: 아래 의견과 관련하여 xfce4-terminal저에게 효과적이었습니다.

export INPUTRC=`mktemp`
trap "rm -f $INPUTRC" EXIT
echo '"\eOQ": "my command"' > $INPUTRC
xfce4-terminal

그리고 F1 대신 F2를 사용하세요.

답변2

래퍼 스크립트를 사용합니다.

k.sh를 기다립니다.

#!/bin/sh
printf "$*"
read k
exec "$@"

그런 다음 명령 앞에 이것을 추가하십시오.

waitk.sh ls -l

답변3

간단한 방법은 텍스트를 클립보드 버퍼(예: | pbcopy.

그런 다음 Cmd + v.

관련 정보