내 스크립트는 다음과 같이 저장되었으며 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 bash
Linux 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