![간단한 bash 라인을 사용하여 MySQL에서 "대기 중"으로 표시된 프로세스를 자동으로 종료하는 방법](https://linux55.com/image/107521/%EA%B0%84%EB%8B%A8%ED%95%9C%20bash%20%EB%9D%BC%EC%9D%B8%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20MySQL%EC%97%90%EC%84%9C%20%22%EB%8C%80%EA%B8%B0%20%EC%A4%91%22%EC%9C%BC%EB%A1%9C%20%ED%91%9C%EC%8B%9C%EB%90%9C%20%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EB%A5%BC%20%EC%9E%90%EB%8F%99%EC%9C%BC%EB%A1%9C%20%EC%A2%85%EB%A3%8C%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
나는 성공하지 못한 채 다음 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