Linux 시스템 -shell 스크립트 실행 프로그램

4029 단어 Linux 시스템
머리말
기존의 로컬 하도급 프로그램과 하도급 프로그램을 동시에 실행해야 하며 스크립트를 통해 하도급 처리를 실현해야 한다.
에 있습니다.sh 파일에 실행 파일 추가
  • 실행 파일 디렉토리에서 새로 만들고 편집합니다.sh 스크립트 파일
  • (1) 실행 가능한 파일 디렉터리에 들어가서 새 스크립트 파일 만들기
  • touch test.sh
  • gedit test.sh 또는 vi test.sh

  • (2) 스크립트 내용 추가: #!/bin/bash
  • #! 스크립트 해석기 프로그램 경로입니다.
  • /bin/bash와 유사한 것은 bin/csh 스크립트,/bin/perl 스크립트,/bin/awk 스크립트,/bin/sed 스크립트, 심지어는/bin/echo 등도 있다.
  • /bin/sh(즉/bin/dash)는 Debian 시스템의 Dash Shell 기호 링크로 Ubuntu는 Debian을 계승하여 6.10 버전부터 기본적으로 Dash Shell을 사용합니다.
  • /bin/bash와/bin/sh 둘은 대체적으로 별 차이가 없다./bin/sh는 더욱 작고 간단하며 POSIX 표준에 규정된 특성만 사용할 수 있다

  • (3) 실행 파일 및 표준 입력 추가: 예./send 1234 1235 1236 1237
  • ./send는 컴파일된 실행 파일입니다. 1234... 표준 입력


  • 스크립트 파일 실행하기
  • (1) 단일 스크립트 파일 실행
  • 메서드 1: 이 디렉토리에서 실행
  • 스크립트 파일이 있는 디렉터리에 들어가기
  • ./test.sh 실행 스크립트
  • 또는shtest.sh
  • 또는 bash test.sh
  • sh와 bash 방식은 실행 권한 추가를 실현할 필요가 없습니다.test.sh 호출 실행
  • 메서드 2: 절대 경로 실행
  • /home/username/xx/test.sh
  • 또는 ~/xx/test.sh

  • 방법3: 현재 셸 환경에서 실행
  • 스크립트 파일이 있는 디렉터리에 들어가기
  • source test.sh
  • 또는.test.sh

  • 주: 방법 1과 2는 모두 아버지 셸에서 하위 셸을 열고 실행을 마치고 아버지 셸으로 돌아가는 것이고, 방법 3은 현재 셸에서 실행하는 것이다
  • (2) 단일 스크립트 파일로 여러 명령 실행
  • 각 명령은 ";"갈라놓다
  • 명령마다 실행되며 서로 영향을 주지 않지만 명령마다 성공할 수 없음
  • 명령마다 "&"로 구분
  • 앞의 명령이 성공적으로 집행되어서야 뒤의 명령을 집행하여 모든 명령이 집행되고 모든 과정이 성공적임을 보증한다
  • 각 명령은 "|||"로 구분됩니다.
  • 앞의 명령이 실행되지 않아야 다음 명령을 실행할 수 있습니다

  • 참고: 터미널에서 ";","&", "|||"방식으로 여러 명령 실행
  • (3) 여러 개의 독립된 스크립트 파일을 실행합니다 - gnome-terminal을 통해 새 터미널을 열고 스크립트를 실행합니다
  • gnome-terminal - -tab “atsc” -x bash -c “sh ./run.sh;exec bash”
  • 참고: 영어 큰따옴표
  • 명령 해석:
  • – tab: 새 터미널 열기 (- window 창, 탭 탭)
  • "atsc": 새 터미널 이름
  • -x: 후면 명령 실행
  • -c:command
  • sh ./xxx/run.sh: 디렉터리에서 스크립트 실행
  • execbash: 새 터미널을 종료하지 않도록 유지
  • 명령 사용: 여러 터미널을 열고 해당하는 스크립트를 실행하여 여러 스크립트를 독립적으로 실행
  • gnome-terminal - -tab “atsc” -x bash -c “sh ./run.sh;exec bash” ; gnome-terminal - -tab “temp” -x bash -c “sh ./send.sh;exec bash”
  • ";"을 사용했습니다.명령마다 실행, 상호 영향 없음


  • (4) 여러 개의 독립된 스크립트 파일 실행 - 셸 스크립트 파일을 통해 다른 스크립트 파일 스크립트를 시작하여 패키지 처리
  • 방식1:gnome-terminal을 통해 실현
  • gnome-terminal - -tab “atsc” -x bash -c “sh ./run.sh;exec bash” ; gnome-terminal - -tab “temp” -x bash -c “sh ./send.sh;exec bash”
  • 프로세스 1: 수납 프로그램을 먼저 뛰고 일정 시간의 막힘 대기 허용
  • 프로세스 2: 재이송 루틴
  • 방법2: 셸 발자국 파일을 통해 다른 스크립트 파일 시작
  • 아래 그림
  • 이 문법은 약간 군더더기가 있어 보이며 좀 더 전문적이고 간결한 문법이 있을 수 있다.권장 방법1

  • #!/bin/bash
    
    echo "-------auto run receiver & sender-------"
    
    for filename in $(ls /xxx/repository)
    
    do
            gnome-terminal --tab "receiving" -x bash -c "sh ./receive.sh;exec bash"
            gnome-terminal --tab "sending" -x bash -c "sh ./send.sh;exec bash;"
            exit
    done
    
    exit

    보충: 경로 문제
  • ./현재 디렉토리
  • ../상위 디렉토리
  • /루트
  • ~/
  • 루트 계정 로그인 표시/root
  • 사용자user 계정 로그인 표시/home/user

  • Acknowledgements:
    http://www.cnblogs.com/EasonJim/p/6850319.html
    http://blog.csdn.net/alifrank/article/details/47396127
    http://blog.csdn.net/bananasssss/article/details/51315342
    http://newkedison.tk/blog/tips-for-gnome-terminal.html
    2017.07.27

    좋은 웹페이지 즐겨찾기