절대 경로를 통해 bash 스크립트를 실행하는 방법?


1

파일이 있습니다.

/Users/danylo.volokh/test/test_bash_script.sh

내용은 매우 간단합니다.

#!/usr/bin/env bash
echo "-- print from script"

나는 "danylo.volokh"폴더에있어.

이 명령은 정상적으로 실행됩니다.

Danilos-MacBook-Pro:~ danylo.volokh$ test/test_bash_script.sh 
-- print from script

하지만 절대 경로로 실행하려고하면 오류가 발생합니다.

Danilos-MacBook-Pro:~ danylo.volokh$ /test/test_bash_script.sh 
-bash: /test/test_bash_script.sh: No such file or directory

모든 폴더에서 절대 경로로 명령을 실행하고 스크립트가 실행되도록하고 싶습니다.


3
절대 경로는 다음과 같습니다. /Users/danylo.volokh/test/test_bash_script.sh 아니 /test/test_bash_script.sh
slebetman

3
이 질문에는 기본적인 이해 문제가 있습니다. VTC?
cst1992

나는 그것을 얻지 않는다. 당신은 분명히 스크립트의 전체 경로를 알고 있지만 아직 사용하지 않을 것입니다.
njzk2

답변:


12

모든 폴더에서 절대 경로로 명령을 실행하고 스크립트가 실행되도록하고 싶습니다.

절대 경로로 실행하려고하면 오류가 발생합니다.

/test/test_bash_script.sh 
-bash: /test/test_bash_script.sh: No such file or directory

파일 /test/test_bash_script.sh 존재하지 않으며 실행될 수 없습니다.

  • 절대 경로는 루트 디렉토리에서 파일 또는 디렉토리의 위치를 ​​지정하는 것으로 정의됩니다 ( / ).

  • /test 디렉토리로 절대 경로 일 수 없다. /test 존재하지 않는다 (홈 디렉토리의 서브 디렉토리입니다).

두 가지 선택이 있습니다.

  1. 스크립트에 대한 올바른 절대 경로를 사용하십시오.

    /Users/danylo.volokh/test/test_bash_script.sh
    
  2. 홈 디렉토리에 기반한 경로를 사용하십시오.

    ~/test/test_bash_script.sh
    

절대 경로 란 무엇입니까?

절대 경로는 루트 디렉토리에서 파일 또는 디렉토리의 위치를 ​​지정하는 것으로 정의됩니다 ( / ).

출처 Linux / Unix의 절대 경로 대 상대 경로

슬래시는 항상 이름 구성 요소를 구분하기 때문에 경로 이름이 시작되면   슬래시를 사용하여 이름이없는 "ROOT"디렉토리가   경로명. ROOT 디렉토리에는 이름이 없습니다. 그것은 전체의 뿌리이다.   유닉스 파일 시스템 트리.

슬래시로 시작하는 경로 이름은 절대 경로 이름이라고합니다.   그것은 항상 ROOT에서 시작됩니다.

이름이없는 디렉토리에 관해서는 이야기하기가 어렵 기 때문에 우리는   일반적으로 (잘못) ROOT 디렉토리에 "/"(슬래시) 이름을 사용하십시오.   경로 이름의 이름 구성 요소에 포함 할 수 없기 때문에 이것은 잘못되었습니다.   슬래시와 슬래시는 이름 구성 요소를 구분합니다. 우리가   ROOT에 "/"를 사용하면, 실제로 "이름이없는 ROOT 디렉토리는   슬래시 그 자체가 아니라 슬래시 왼쪽에있는 것입니다.

출처 유닉스 / 리눅스 경로명 (절대, 상대, 점, 점)


2

절대 경로는 다음과 같습니다. /Users/danylo.volokh/test/test_bash_script.sh, 아니라 /test/test_bash_script.sh. 배쉬는 바로 그 때이다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.