2014-04-15 3 views
2

whiptail 명령은 다음의 설명이있는 옵션 --textbox 가지고채찍 꼬리 텍스트 박스에서 명령 출력을 표시하는 방법

--textbox <file> <height> <width> 

첫 번째 옵션은 입력으로 파일을 요구하는 단계; 그 자리에 명령의 출력을 사용하고 싶습니다. sh 또는 bash에서 가능해야합니다. 질문을 위해서, 내가 whiptail 텍스트 상자에 ls -l의 출력을보고 싶다고합시다. 프로세스 교체 (채찍 꼬리에서 작동하도록 나타나지 않습니다

참고 예 채찍 꼬리 --textbox -l < (LS) (40) (80)가하는 하지 작동합니다.

이 질문에 this other stackoverflow question의 재 묻는이며, 이는 기술적으로 대답했다

+2

나는 프로세스 대체가 작동하지 않는 이유에 대해 추측합니다. 생성 된 "파일"은 찾을 수 없으며,'--textbox'는 파일 내비게이션 (위/아래 ...)을 허용합니다. – JoBu1324

+2

JoBu1324의 직감이 정확하다면 (나에게 합리적이라고 생각하면) 항상 임시 파일이 있습니다 :'t = $ (mktemp); ls -l> $ t; whiptail - 텍스트 상자 $ t 40 80'. –

답변

2

이 해결 시도해보십시오.

whiptail --textbox /dev/stdin 40 80 <<<"$(ls -l)" 

배쉬 핸들 <<< 표준 입력 리디렉션을 자신의 임시 파일 및 퍼팅을 만들어를 제공된 문자열을 입력하십시오. 실제 파일이므로 탐색 가능해야합니다. 하지만 항상 그런 식으로 작동한다는 보장은 없습니다.

+0

/dev/stdin은 어디에 적합합니까? 그것은 정규 파일이 아닙니다. 좋은 해결책, btw! – JoBu1324

+0

그건 단지 '배타적 인'로터리 방식으로'ls -l | whiptail --textbox/dev/stdin 40 80' – tripleee

+1

@ tripleee :하지만 두 표현은 행동을 구분할 수 있습니다. Mine은 (검색 가능한) 임시 파일로 구현됩니다. 당신의 (유치 할 수없는) 유닉스 소켓으로 구현됩니다. TIAS. – rici