내가 "화면 -list"불행하게도리눅스 bash는 스크립트는
이미 루프 실패에 모든 프로세스의 이름을 얻으려고, 문자의 첫 번째 occurance 후 문자열을 잘라
for PLINE in `screen -list | grep 'tached)'`; do
echo "$PLINE"
done
때문에
출력
3698.processname
(16/08/12
12:59:37)
(Detached)
하지만 내 예상 출력이었다
3698.processname (16/08/12 12:59:37) (Detached)
은 콘솔에 직접 screen -list | grep 'tached)'
을 입력 할 때와 같습니다.
이 루프가 작동했으면 수행하려는 작업은 cut -d '.' -f 2
을 사용하고 첫 번째 공백을 찾은 후 결과 문자열을 잘라내는 것입니다. (어떤 방법을 아직 잘 모르겠다. 내가 아는 전부는 %' '
이다.)
그래서 나는 bash 스크립트에 단서가별로 없다고 생각한다. 따라서 나는 더 많은 것을 공개하고있다. 임씨가하려고하는 일을하는 우아한 제안.
(편집) 해결 방법 :
for PLINE in `screen -list | grep 'tached)' | awk -F '[ \t\n\v\r.]' '{print $3}'`; do
echo $PLINE
done
솔루션은 여전히 불필요한 파이프를 사용합니다. grep으로 할 수있는 일은 awk로 할 수 있다는 것을 기억하십시오. – ghoti