현재 터미널 세션의 길이를 출력하고 해당 길이로 다양한 다른 작업을 수행하기 위해 나만의 bash 스크립트를 만들려고 합니다.
제가 겪고 있는 문제는 스크립트에 있습니다.
#!/bin/bash
SESSIONLENGTH=$(echo $SECONDS)
echo $SESSIONLENGTH
...bash 쉘의 또 다른 인스턴스를 생성합니다(또는 적어도 나는 그것이 일어나고 있다고 믿습니다). 여기서 스크립트를 실행하는 쉘의 값 대신 자체 $SECONDS
값이 할당됩니다 .$SESSIONLENGTH
$SECONDS
제 질문은 현재 세션의 길이를 스크립트로 어떻게 반환할 수 있느냐는 것입니다.
답변1
넌 할 수있어
source /path/to/script
또는
. /path/to/script
현재 세션의 스크립트에 있는 명령을 실행합니다 bash
. 참고: 이 경우 현재 세션이 완료되므로 스크립트에서 호출하지 마십시오 exit
(아마도 쉘이 종료될 때 터미널 에뮬레이터가 닫히는지 확인하기 전).
반면에 세션 시간만 측정하는 경우에는 다음과 같이 할 수도 있습니다.
time bash
세션 을 종료하면 bash
해당 세션에서 보낸 시간이 인쇄됩니다. 여러 쉘 간에 이식 가능합니다( bash
및 뿐만 아니라 zsh
가 있습니다 $SECONDS
).