bash 명령은 작동하지만 권한에도 불구하고 스크립트가 작동하지 않습니다.

bash 명령은 작동하지만 권한에도 불구하고 스크립트가 작동하지 않습니다.

내 스크립트는 다음과 같이 저장되었으며 recent.sh현재 다음과 같이 읽습니다.

#!/bin/bash -x
rcnt() {
    ls -t -p | grep -v / | head -n1 | cat
}

source recent.sh실행 하면 rcnt디렉토리의 최신 파일이 인쇄됩니다. 그러나 I ./recent.sh또는 sh recent.sh그것이 터미널에 아무것도 인쇄하지 않을 때. (저장한 디렉토리에서 실행해 보았습니다.)

usr/bin/env bashLinux Mint 19의 터미널에서 이것을 실행하려고하는데 -x없이 bash 대신 sh를 사용하여 사용해 보았습니다 . 권한은 777입니다.

이 스크립트를 실행하는 터미널에 인쇄되도록 하려면 어떻게 해야 합니까?

저는 초보자이고 뭔가 간과하고 있을 수도 있지만 대부분 권한을 올바르게 설정하도록 제안하는 관련 SO, StackExchange 등의 답변을 모두 읽었으며 bash가 어디에 있는지(나에게는 bin/ bash) 또는 기타 코드 관련 문제.

답변1

이를 실행하려면 작성한 함수를 호출해야 합니다.
Bash의 함수 호출에는 괄호가 필요하지 않습니다. 따라서 스크립트는 다음과 같아야 합니다.

#!/bin/bash
rcnt() {           #Function definition
    ls -t -p | grep -v / | head -n1 | cat
}

rcnt               #Function invocation

관련 정보