[bash] “sh”또는“bash”명령을 사용하지 않고 쉘 스크립트를 어떻게 실행합니까?

“sh”또는 “bash”명령을 사용하지 않고 실행하려는 쉘 스크립트가 있습니다. 예를 들면 다음과 같습니다.

대신에: sh script.sh

사용하고 싶습니다 : script.sh

어떻게해야합니까?

추신 (i) 나는 셸 스크립트를 많이 사용하지 않고 별칭에 대해 읽으려고 시도했지만 별칭을 사용하는 방법을 이해하지 못했습니다.

(ii) 스크립트를 PATH 변수의 다른 파일과 연결하는 방법에 대해서도 읽었습니다. 대학 서버를 사용하고 있는데 해당 위치에서 파일을 만들 수있는 권한이 없습니다.



답변

파일 맨 위에 “shebang”을 추가하십시오.

#!/bin/bash

그리고 파일을 실행 가능하게 만드십시오 ( chmod +x script.sh).

마지막으로 경로를 수정하여 스크립트가있는 디렉토리를 추가하십시오.

export PATH=$PATH:/appropriate/directory

(일반적으로 $HOME/bin자체 스크립트를 저장 하려고 합니다)


답변

다음은 스크립트 이름을 직접 사용하기위한 전제 조건 중 일부입니다.

  1. she-bang (#!/bin/bash)맨 위에 줄을 추가하십시오 .
  2. 사용 chmod u+x scriptname하여 스크립트를 실행 가능하게합니다. (여기서 scriptname스크립트 이름이 있습니다)
  3. 스크립트를 /usr/local/bin폴더 아래에 배치하십시오 .
  4. 스크립트 이름 만 사용하여 스크립트를 실행하십시오.

참고 :/usr/local/bin 폴더 아래에 배치하도록 제안한 이유 는 경로가 이미에 추가되었을 가능성이 높기 때문 PATH variable입니다.

최신 정보:

/usr/local/bin폴더에 액세스 할 수 없으면 다음을 수행하십시오.

  1. 홈 디렉토리에 폴더를 작성하고 호출하십시오 myscripts.
  2. 수행 ls -lart쉘이 사용하는 시작 스크립트를 식별, 홈 디렉토리에. .profile또는 이어야합니다 .bashrc.
  3. 시작 스크립트를 식별했으면 스크립트에 다음 줄을 추가하십시오-
    export set PATH=$PATH:~/myscript.
  4. 추가 한 후에는 시작 스크립트를 소싱하거나 로그 아웃했다가 다시 로그인하십시오.
  5. 를 사용하여 스크립트를 실행하십시오 scriptname.

답변

를 사용하여 실행 파일인지 확인하십시오 chmod +x. 기본적으로 현재 디렉토리는 PATH에 없으므로 디렉토리를 실행 ./script.sh하거나 규정 된 경로로 참조해야합니다. 또는 진정으로 필요한 경우 script.shPATH에 추가해야합니다. 시스템 경로를 수정할 수는 없지만 현재 환경의 PATH를 거의 확실하게 수정할 수 있습니다. 또한 스크립트가 다음과 같은 것으로 시작한다고 가정합니다.#!/bin/sh .

셸 스크립트와 실제로 관련이 없으며 셸과 관련이있는 별칭을 계속 사용할 수도 있습니다.

alias script.sh='sh script.sh'

을 대신하여 단순히 script.sh(문자 그대로-다른 *.sh파일 에서는 작동하지 않음) 사용할 수 있습니다 sh script.sh.


답변

이 예제에서 파일은 myShell

우선이 파일을 만들어야합니다. 다음을 입력하여 시작할 수 있습니다.

sudo nano myShell

.sh확장 프로그램을 넣지 않았 습니까? 터미널에서 실행할 때 입력 만하면되기 때문입니다.myShell 명령을 실행하기 위해 하기 만하면되기 때문입니다!

이제 nano에서 맨 위 줄이어야 #!/bin/bash합니다. 계속하기 전에 새 줄을 남길 수 있습니다.

데모를 위해 기본 Hello World!응답 을 추가합니다

따라서 다음을 입력합니다.

echo Hello World!

그 후 내 예제는 다음과 같아야합니다.

#!/bin/bash
echo Hello World!

이제 파일을 저장 한 후 다음 명령을 실행하십시오.

sudo chmod +x myShell

이제 /usr/bin/다음 명령을 사용하여 파일을 이동할 수있는 파일을 만들었습니다 .

sudo cp myShell /usr/bin/

머신이 제대로 실행되도록하려면 머신을 재부팅해야합니다.

나는 사용했다 sudo shutdown -r now

축하합니다! 우리의 명령이 완료되었습니다! 터미널에서 우리는 입력 할 수 myShell있으며 말을해야Hello World!


답변

프로그램의 실행 비트를 활성화해야합니다.

chmod +x script.sh

그런 다음 사용할 수 있습니다 ./script.sh

.bashrc파일을 홈 디렉토리에있는 파일 의 PATH에 폴더를 추가 할 수 있습니다 . 파일 끝에 다음 줄을 추가하십시오.

export PATH=$PATH:/your/folder/here


답변

sudo install (스크립트 이름) / usr / local / bin / (스크립트를 실행하기 위해 입력하려는 내용)을 입력 할 수 있습니다

예 : sudo install quickcommit.sh /usr/local/bin/quickcommit
비밀번호를 입력하십시오

이제 .sh없이 모든 디렉토리에서 실행할 수 있습니다.


답변

추가하십시오. (현재 디렉토리)를 PATH 변수에 추가하십시오.
.profile 파일을 편집하여이를 수행 할 수 있습니다.
.profile 파일에 다음 줄을 넣으 십시오 스크립트 시작 부분
PATH=$PATH:.

에 Shebang ( #!/bin/bash) 줄 을 추가 하고 스크립트를 실행 가능하게 만드십시오 (을 사용하여 chmod +x <File Name>).