스크립트의 종료 코드를 av 변수에 할당하는 방법에 대한 많은 정보를 찾을 수 있지만 그 반대를 수행하고 싶습니다. 스크립트에 정의된 변수의 값을 스크립트의 종료 코드로 사용합니다.
예를 들어, 특정 파일 시스템(및 기타 여러 항목)에서 열린 파일 수를 계산하는 스크립트가 있습니다. 스크립트의 종료 코드를 열린 파일 수로 설정하고 싶습니다. 기본적으로 다음과 같습니다.
#!/bin/bash
OPENFILES=`lsof /filesystem | wc -l`
exit $OPENFILES
따라서 스크립트가 종료된 후 "echo $?"는 스크립트에 정의된 $OPENFILES 값을 제공합니다.
따옴표, 괄호 등을 사용하여 다양한 순열을 시도했지만 결과는 모두 비어 있습니다. 내가 하려는 일이 불가능하거나 너무 뻔해서 무시하는 것 같은 느낌이 듭니다.
답변1
특히 종료 코드는 0에서 255 사이의 정수이기 때문에 실제로 종료 코드를 사용하여 원하는 것을 얻을 수는 없습니다. 783개의 열린 파일이 있는 경우 어떤 동작을 원하시나요?
게다가 0이 아닌 종료 코드를 설정했기 때문에 이 사용법은 근본적으로 깨졌습니다.아니요오류 조건이며 표준과 거리가 멀습니다.
답변2
파일에 쓸 필요는 없습니다. 스크립트가 wc
결과를 출력하도록 하세요.
#!/bin/sh
lsof /filesystem | wc -l
그런 다음 결과를 캡처합니다.
openfiles=$(/path/to/openfiles.sh)
스크립트가 이보다 더 복잡하지 않다면 ~/.bashrc에 이것을 추가하세요.
alias openfiles='lsof /filesystem | wc -l'
그런 다음
n=$(openfiles); echo $n