스크립트가 있습니다 :
#!/bin/bash
echo "$(dirname $(readlink -e $1))/$(basename $1)"
여기에 있습니다 : /home/myuser/bin/abspath.sh
실행 권한이 있습니다.
실행 echo $PATH
하면 다음과 같은 결과가 나타납니다./usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/myuser/bin
모든 디렉토리에서 전화 abspath <some_path_here>
를 걸고 스크립트를 호출 할 수 있기를 바랍니다 . 나는 bash를 사용하고 있는데, 내가 뭘 잘못하고 있니?
답변
입력하려고 abspath
하지만 프로그램의 이름이 지정 abspath.sh
됩니다. 문제는 PATH에 있는지 여부에 관한 것이 아니라 단순히 이름을 사용하여 호출하지 않는다는 사실입니다.
두 가지 옵션이 있습니다.
abspath.sh
대신 입력하십시오 .- 프로그램 이름을로 바꿉니다
abspath
.
답변
이 코드는 쉘 함수로 코딩 할 수있을 정도로 작습니다.
abspath() {
echo "$(dirname "$(readlink -e "$1")")/$(basename "$1")"
}
그리고 네, 당신은 모든 인용문을 원합니다.
답변
.bashrc 파일에 명령을 추가하여 별명을 설정하십시오.
alias abspath='sh /home/myuser/bin/abspath.sh'
그리고 파일을 소싱하는 것을 잊지 마십시오.
답변
bash 스크립트의 이름을 바꾼 abspath
다음 bin
디렉토리 로 옮길 것 입니다. abspath
언제 어디서나 전화를 걸 수 있습니다
답변
세 번째 옵션은 abspath.sh 스크립트를 가리키는 abspath라는 별명을 작성하는 것입니다.