for 루프 내 자동 제안에서 "작은따옴표" 텍스트만 자동으로 복사하여 붙여넣는 방법은 무엇입니까?

for 루프 내 자동 제안에서 "작은따옴표" 텍스트만 자동으로 복사하여 붙여넣는 방법은 무엇입니까?

for 루프를 사용하여 만료된 여러 디렉터리를 검색하는 명령을 작성 중입니다. 시스템에는 내가 인간인지 확인하는 보안 검사 기능이 있습니다.

$ for x in $(exp-dir); do 
clean_command $x
done

시스템에서 자동으로 대화형 셸을 실행하라는 메시지가 표시되며 완료하려면 인용된 텍스트(for 루프의 각 $x에 대해)를 복사하여 붙여넣어야 합니다.

$ to verify that you are human, please type 'xyzylans':
you are human
Info: restore successful.

작은따옴표로 묶인 텍스트를 구문 분석하고, 복사하고, 전달하는 방법, 즉 루프를 완전히 자동화하는 방법이 있습니까?

답변1

$ cat testscript.sh
#! /bin/bash

string='xyzylans'
echo "to verify that you are human, please type '${string}':"
read cmpstring
test "$string" = "$cmpstring"
echo $?

stdin및 을 사용 하면 stdout다음과 같이 할 수 있습니다.

coproc ./testscript.sh
awk -F\' "/^to verify that you are human, please type '.*':\$/ "\
"{ print \$2; exit };" <&${COPROC[0]} >&${COPROC[1]}
cat <&${COPROC[0]}

관련 정보