Bash에서 함수를 실행할 때 명령을 찾을 수 없습니다.

Bash에서 함수를 실행할 때 명령을 찾을 수 없습니다.

한 화면을 닫고 새 화면을 시작하는 기본 bash 스크립트를 만들려고 합니다.

재시작.sh

#!/bin/bash

set -o nounset
set -o errexit
trap 'echo "Aborting due to errexit on line $LINENO. Exit code: $?" >&2' ERR
set -o errtrace
set -o pipefail

SCR="bunny"
SCRIPT="/home/../run.sh" 

target_screen=$(find_screen $SCR)

main() {
    if find_screen $SCR >/dev/null; then
        close_screen
        start_script
    fi
}

function start_script {
    echo "Starting script with new screen"
    screen -d -m -t $SCR sh $SCRIPT
}

function close_screen {
    if find_screen $SCR >/dev/null; then
        echo "Found! Deleting $SCR"
        screen -S -X $target_screen quit
    fi
}

function find_screen {
    if screen -ls "$1" | grep -o "^\s*[0-9]*\.$1[ "$'\t'"](" --color=NEVER -m 1 | grep -oh "[0-9]*\.$1" --color=NEVER -m 1 -q >/dev/null; then
        screen -ls "$1" | grep -o "^\s*[0-9]*\.$1[ "$'\t'"](" --color=NEVER -m 1 | grep -oh "[0-9]*\.$1" --color=NEVER -m 1 2>/dev/null
        return 0
    else
        echo "$1"
        return 1
    fi
}

main "$@"

그러나 Ubuntu 16.04에서 이 스크립트를 실행하면 다음과 같은 결과가 나타납니다.

    ./restart.sh: line 12: find_screen: command not found
Aborting due to errexit on line 12. Exit code: 127

내가 뭘 잘못했나요?

관련 정보