답변:
$prompt: /path/to/script
Enter를 누르십시오. 스크립트에 실행 권한이 있는지 확인해야합니다.
/path/to
예를 들어 cd /path/to
명령을 사용하여 이미 디렉토리 에있는 ./script
경우 스크립트를 실행하도록 입력 할 수 있습니다 .이 경우 'script'앞에 './'를 입력하십시오.
실행하는 또 다른 방법 (이번에는 실행 권한을 설정하지 않고) :
bash /path/to/scriptname
스크립트가있는 디렉토리로 이동하거나 $ PATH에있는 bin 폴더에 넣으십시오.
그런 다음 입력
./scriptname.sh
같은 디렉토리에 있거나
scriptname.sh
bin 폴더에있는 경우.
./scriptname.sh
나를 위해 작동하지만 scriptname.sh
있습니다 scriptname.sh: command not found
. -rwxr-xr-x
권한입니다.
cd
어디서든 조언은 또 다른 일반적인 초보자 오해를 유발합니다. 스크립트가 내부적으로 특정 디렉토리에서 실행해야하는 종속성이없는 경우 (예 : 스크립트가 설명 할 수없는 옵션을 제공하지 않는 데이터 파일을 읽어야하는 경우) cd
실행할 곳 이 없어야합니다. 종종 원하지 않을 것입니다.
다음과 같이 할 수 있습니다.
sh scriptname.sh
sh
하는 심볼릭 링크 bash
, 또는 스크립트가 어떤 Bash 전용 구조를 사용하지 않는 경우가. 전자의 경우 bash
대신 대신 사용 하는 sh
것이 유일하게 정확하고 이식 가능한 솔루션입니다. 후자의 경우 OP가 Bash 스크립트에 대한 조언을 구체적으로 요청했기 때문에이 특정 질문에 대한 정답이 아닙니다. 오답을 범하는 것은 무책임합니다. 차이점을 이해하지 못하는 사용자는 여기에 자주 게시하며이 "나에게 도움이되었습니다"답변이 효과가없는 이유를 보여 주어야합니다.
이것은 오래된 스레드이지만 나는 그것을 통해 일어 났고 아무도 아직 완전한 대답을하지 않은 것에 놀랐습니다. 그래서 여기 간다 ...
Q : 터미널에서 어떻게 실행합니까?
혼란과 갈등 :
sudo
. 이 명령은 다른 사용자 또는 '루트'(관리자) 사용자로 명령을 실행하기 위해 예약되어 있습니다. 여기에 좋은 게시물 .(스크립트 실행 방법을 배우는 사람은 새 프로그램을 설치하는 것과 같은 실제 필요가없는 한이 명령을 사용하지 않아야합니다. 스크립트를 넣을 수있는 좋은 위치는 ~ / bin 폴더입니다. 입력 cd ~/bin
하거나 cd $HOME/bin
터미널 프롬프트에서. 해당 폴더에 대한 전체 권한을 갖게됩니다.)
Unix / Linux 유형 시스템의 터미널에서 "이 스크립트를 실행"하려면 다음 세 가지를 수행해야합니다.
시스템에 스크립트의 위치를 알려줍니다. (하나를 선택)
/path/to/script.sh
. pwd
또는 echo $PWD
터미널 에 입력하여 전체 경로를 확인할 수 있습니다 ../
하고 경로 (예 :)에 사용 합니다 ./script.sh
. 쉬운.PATH
넣고 이름 (예 :)을 입력하기 만하면 script.sh
됩니다. PATH
입력 echo $PATH
하거나 echo -e ${PATH//:/\\n}
더 깔끔한 목록을 원하는 경우 시스템 을 확인할 수 있습니다 .스크립트에 실행 권한이 있음을 시스템에 알립니다. (하나를 선택)
시스템에 스크립트 유형을 알립니다. (하나를 선택)
BASH /path/to/script.sh
또는 PHP /path/to/script.php
) 스크립트에 .php 또는 .py와 같은 확장자가있는 경우 스크립트 이름의 일부이며 반드시 포함해야합니다.#!/bin/bash
. 스크립트의 첫 번째 줄에있는 경우 시스템은 해당 프로그램을 사용하여 스크립트를 실행합니다. 프로그램을 입력하거나 확장을 사용할 필요가 없습니다.PATH
을 사용하여 첫 번째 프로그램 버전을 선택하도록 할 수도 있습니다 . 여기에 자세히 설명 된 장단점이 있습니다 .#!/usr/bin/env
#!/usr/bin/env bash
#!/usr/bin/env python3
script.sh
하고 script.php
이러한 스크립트의 문자 파일 이름은, 당신은 파일 이름에 확장자를 넣어 경우, 당신은 당신이 반대 스크립트 (그 반대를 실행할 때 포함시켜야; 스크립트 아무튼 '의 경우 확장명이 있으면 넣지 마십시오). 이것은 당신이를 생략 할 수있는 경우 예를 들어 DOS 달리 .bat
또는 .exe
파일 이름에서, 순서대로 작은 세트에서 확장을하는 데 필요한 파일이 실행 고려되어야한다.
스크립트 파일을 사용할 수있는 디렉토리 또는 폴더에있는 경우 다음을 수행하여 실행 모드에서 파일 권한을 변경하기 만하면됩니다.
chmod +x your_filename.sh
그 후 다음 명령을 사용하여 스크립트를 실행합니다.
$ sudo ./your_filename.sh
위로 "." 현재 디렉토리를 나타냅니다. 노트! bash 스크립트 파일이있는 디렉토리에없는 경우 다음을 사용하여 파일이있는 디렉토리를 변경합니다.
cd Directory_name/write the complete path
명령. 그렇지 않으면 스크립트를 실행할 수 없습니다.
sudo
이다 잘못된 잠재적으로 끔찍하게 잘못 이있는 남용이 불필요 준 힘을 신뢰할 수없는 스크립트를 사용합니다.
cd
어딘가에 대한 조언 은 이해하기 어렵지만 아마도 틀렸을 것입니다.
chmod +x scriptname
다음./scriptname
.