간단한 bash 라인을 사용하여 MySQL에서 "대기 중"으로 표시된 프로세스를 자동으로 종료하는 방법

간단한 bash 라인을 사용하여 MySQL에서 "대기 중"으로 표시된 프로세스를 자동으로 종료하는 방법

나는 성공하지 못한 채 다음 bash 라인을 실행하려고 노력하고 있습니다. 동일한 라인의 많은 변형을 시도했지만 성공하지 못했습니다. 누군가가 오류를 발견하길 바랍니다.

mysql -u user --password=\m\y\p\a\s\s  -h myhost -e 'kill $(mysql -u user --password=\m\y\p\a\s\s -h myhost -e "show processlist;" | grep Waiting | awk '{print $1}' )'

기본적으로 $(...) 내부에서는 대기 상태의 프로세스 목록을 작성하고 있습니다. 해당 코드 외부에서는 해당 프로세스를 종료하려고 합니다. 이는 $() 코드의 bash 문제입니다. 이것이 제가 게시한 이유입니다. 여기에 있기 때문에 따옴표가 있는 부분이 있는 것 같지만 수정하는 방법을 모르겠습니다.

답변1

당신의 인용문은 매우 강력합니다.

진짜.

's는 "강력한" 인용문으로, 매개변수 확장, 서브쉘 확장, 히스토리 확장 등이 아무런 영향을 미치지 않음을 의미합니다.

$ echo '$(echo foo)'
$(echo foo)
$ echo "$(echo foo)"
foo

관련 정보