set
다음과 같이 입력하면 명령이 제대로 작동합니다.
echo $0
/usr/bin/tcsh
echo $SHELL
/usr/bin/tcsh
set START_TIME=`date +%s`
echo $START_TIME
1499360060
tcsh
그러나 다음과 같이 명시적으로 호출하면 작동하지 않습니다.
/usr/bin/tcsh -i -f -c 'set START_TIME=`date +%s`'
echo $START_TIME
START_TIME: Undefined variable.
처음에는 이 작업을 시도했지만 setenv
하위 프로세스가 명령을 실행할 수 없다는 것을 깨달았습니다 setenv
. 그래서 나는 set
그것이 갈 길이라고 생각합니다. 이 문제를 해결할 수 있는 다른 더 좋은 방법이 있는지 조언해 주십시오. 감사해요.
답변1
문제는 서브셸에서 변수를 설정한 다음 서브셸이 종료되고 변수도 함께 가져간다는 것입니다. 전시하다:
$ /bin/tcsh -ifc 'set VARIABLE=foo; echo $VARIABLE'; echo ${VARIABLE-blank}
foo
blank
(내 기본 쉘은 입니다 bash
. 두 번째 쉘은 ism을 echo
사용하여 bash
정의되지 않거나 널 변수 확장에 대한 기본값을 제공합니다)