아래와 같이 스크립트 내부에서 스크립트를 호출하고 싶습니다.
weeknum=$(getweek )
여기서 getweek는 스크립트 파일입니다. Weeknum에 값을 반환하도록 아래 첨자 파일을 작성하는 방법. 반환 또는 종료를 사용하고 상태를 반환 값으로 입력해야 합니까?
답변1
이런 용도 로 잘 활용하시면 됩니다 echo
.
$ cat new
echo 1
$ number=$(./new)
$ echo $number
1
나는 이것이 그 목적을 달성한다고 생각합니다. 또한 new
위 내용은 작성하려는 스크립트라는 점에 유의하세요.
제가 잘못 생각한 것이 있다면 아래에 댓글을 달아주세요.
답변2
구문 $(cmd)
캡처표준 출력(후행 줄 바꿈 제거 cmd
).
따라서 여러분이 해야 할 일은 getweek
정보를 출력하는 것뿐입니다.
#! /bin/sh -
date +%V # or %U or %W
date
에서 상속받은 주 번호를 stdout에 출력합니다 sh
. 이 경우 weeknum=$(getweek)
쉘은 이를 파이프 또는 소켓 쌍으로 설정하고 다른 쪽 끝에서는 쉘이 출력을 읽어 변수에 저장합니다 weeknum
.
종료 상태에서 주 번호를 반환할 수도 있습니다.
#! /bin/sh -
exit "$(date +%W)"
다음을 통해 얻을 수 있습니다:
getweek
weeknum=$?
그러나 나는 이에 반대한다고 조언합니다. 종료 상태는 오류 보고를 위해 예약되거나 true/false 값으로 제한되어야 합니다.
일반적으로 위에서 오류가 발생하거나(프로세스를 포크하거나 실행하는 동안 date
) sh
프로세스가 종료되면 0이 아닌 종료 상태를 얻게 되며 이는 다음과 같이 처리되어서는 안 됩니다.주 번호.
답변3
이것을 시도해 볼 수 있습니다
output=$(sh <scriptname>)
이 경우 목표 달성에 도움이 되는 함수를 스크립트에 작성해 볼 수도 있을 것 같습니다.
답변4
표준 출력에 값을 할당하고 읽으려면 임의의 명령을 사용하십시오.
# 일부 첨자 # 뭔가를 해라 echo "내 값은 여기에 있습니다." # echo는 표준 출력에 무언가를 넣는 방법입니다.
실행 권한을 부여합니다. 아래첨자의 경우:
chmod a+rx 일부 첨자
그리고 그것을 사용
val=$(./일부 아래 첨자) echo "$val" # 여기에 내 값이 반영됩니다.
return 및 종료는 호출자에게 가능한지 여부를 알려주는 데 사용됩니다. 반환 값에는 적용되지 않습니다.