쉘 스크립트 라인의 끝에서 앰퍼샌드 란 무엇을 의미합니까? 합니까? 누구든지 구문을 설명 할 수 있습니까? 포함하지

sh sys-snap.sh &

무엇입니까 sh? 무엇입니까 sys-snap.sh? 왜 &줄 끝에 넣어야 합니까? 누구든지 구문을 설명 할 수 있습니까?

포함하지 않는 &I 누를 때까지 스크립트가 프롬프트로 돌아 가지 않을 Ctrl+를 C. 함께 &내가 눌러 입력하고 작동합니다.



답변

sh기본 Bourne 호환 쉘 (보통 bash 또는 dash)입니다.

sys-snap.shsh실행 되는 명령을 포함하는 쉘 스크립트 입니다. 당신이 그 내용을 게시하지 않기 때문에 나는 그 이름으로 무엇을 추측 할 수 있습니다. 모든 현재 프로세스, 현재 메모리 사용량, 데이터베이스 상태 등으로 로그 파일을 만드는 동일한 파일 이름을 가진 CPanel 관련 스크립트를 찾을 수 있습니다. 스크립트가 shebang 행 ( #!/bin/sh또는 이와 유사한)으로 시작되면 실행 가능하게 만들 수 있습니다. 과 chmod +x sys-snap.sh및 사용하여 직접 시작 ./sys-snap.sh현재 디렉토리에있는 경우.

함께 &프로세스가 백그라운드에서 시작, 그래서 당신은 쉘을 계속 사용할 수 있으며, 스크립트가 완료 될 때까지 기다릴 필요가 없습니다. 잊어 버린 경우 현재 실행중인 프로세스를 중지하고 (또는을 사용하여 전경에서 ) Ctrl-Z계속 진행할 수 있습니다. 자세한 정보는 작업 제어를 참조하십시오.bgfg


답변

이것은 job control유닉스에서 알려져 있습니다 . 는 &백그라운드에서 명령을 넣어 쉘을 알려줍니다. 이것은 sys-snap.sh명령을 계속 실행 하지만 병렬 명령을 계속 수행 할 수 있도록 쉘로 돌아갑니다.

현재 jobs명령으로 실행중인 작업 목록을 볼 수 있습니다 . 명령을 사용하여 명령으로 돌아갈 수 있습니다 ( ‘전경으로’) fg. 어느 다시 더 프롬프트를 볼 수없는 상태로 명령을 끌어 당신은 발행해야 CtrlC죽이는 과정을. 그러나 해당 프로세스를 일시 중지 (일시 중지)하여 Ctrl-를 발행 할 수 있습니다 Z. 일시 중지 sys-snap.sh되고 프롬프트로 돌아갑니다. 그런 다음 그것은 (당신이 그것을 발행 한 것처럼 배경 수 & 로) bg명령, 그것은 것입니다 재개 그것에서 실행 상태를 일시 정지 것 CtrlZ에 넣어했다.

한 번에 둘 이상의 작업을 수행 할 수 있습니다 (로 표시 jobs).

[1]-  Running          sys-snap.sh &
[2]+  Running          another-script.sh &

당신은 배경과 그들의 작업 번호를 사용하여 전경, 할 수 %1있을 것 sys-snap.sh하고 %2있을 것입니다 another-script.sh. 당신이 사용하는 경우 fg또는 bg그것으로 표시 작업에 대한 조치 명령을 것이다 인수없이 +에서 jobs위의 출력.

fg %1

둘 것이다 sys-snap.sh떠나는 동안, 다시 전경에 another-script.sh백그라운드에서.

당신은 실행할 수 있습니다 CtrlC로 전경하지 않고 작업을 실행하는 순서 kill명령을 kill %1동등한를 보낼 것 CtrlCsys-snap.sh.

bash 쉘을 사용하는 경우, man bash명령에는 ‘JOB CONTROL’섹션 아래에 자세한 섹션이 있습니다.

의 이름에 관해서 sys-snap.sh는 유닉스 파일에서 파일 이름은 임의적입니다 (동적 로더 파일과 같은 몇 가지 예외가 있음). 쉘 스크립트로 실행 perl하거나 php등의 다른 명령을 호출하기 위해 특정 파일 확장자를 가질 필요는 없습니다 . 일반적으로 명확성을 제공하는 데 사용됩니다.이 경우 .sh에는 Bourne 쉘을 사용하는 쉘 스크립트입니다 /bin/sh.

기능적인 부분 sys-snap.sh( less명령 과 같은 내용을 볼 때 )은 Shebang 입니다. 첫 번째 줄에는 다음 중 하나가있을 것입니다.

#! /bin/sh
#! /bin/bash
#! /usr/local/bin/bash

또는 유사합니다. 기본적으로 #!(와 같은 /bin/sh) 명령 은 실행되고 나머지 스크립트 파일의 내용은 한 번에 한 줄씩 제공됩니다. chmod명령으로 파일을 실행할 수 있도록 파일을 실행 파일로 설정해야합니다 . 권한이 설정되지 않은 shebang경우 오류가 발생하므로 효과가 없습니다.

bash: sys-snap.sh: command not found

또는 명시 적 경로 ./sys-snap.sh( .현재 작업 디렉토리를 의미)로 실행하면 다음과 같은 결과가 나타납니다.

bash: ./sys-snap.sh: Permission denied

다른 대안은 실행 권한없이 그대로두고 / bin / sh를 명시 적으로 실행하여 요청하는 것입니다.

/bin/sh sys-snap.sh &


답변

sh껍질입니다. 어떤 쉘이 시스템에 정확히 의존하는지. bash표준 쉘로 사용하는 시스템의 예 :

$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Mar 13 16:12 /bin/sh -> bash

$ sh --version
GNU bash, version 4.2.45(1)-release (x86_64-pc-linux-gnu)

sys-snap.sh어떤 종류의 쉘 스크립트가 될 것이므로 쉘 스크립트를 sh sys-snap.sh실행합니다.

&쉘 프로세스가 백그라운드에서 실행되도록합니다. 그렇지 않으면 &스크립트가 끝날 때까지 포 그라운드로 유지됩니다. 스크립트는 어느 쪽이든 작동하지만 추가 명령을 실행하기 전에 스크립트가 끝날 때까지 기다리는 것입니다.


답변

서버가 hostgator에 있습니까?

이 스크립트 sys-snap.sh는 시스템의 모든 로그 파일과 데이터를 수집하기 위해 hostgator 팀이 작성한 특수 스크립트이므로 시스템 정보를 모니터링하고 수집 할 때 해당 출력을 사용합니다.


답변