“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
자체 스크립트를 저장 하려고 합니다)
다음은 스크립트 이름을 직접 사용하기위한 전제 조건 중 일부입니다.
she-bang (#!/bin/bash)
맨 위에 줄을 추가하십시오 .- 사용
chmod u+x scriptname
하여 스크립트를 실행 가능하게합니다. (여기서scriptname
스크립트 이름이 있습니다) - 스크립트를
/usr/local/bin
폴더 아래에 배치하십시오 . - 스크립트 이름 만 사용하여 스크립트를 실행하십시오.
참고 :/usr/local/bin
폴더 아래에 배치하도록 제안한 이유 는 경로가 이미에 추가되었을 가능성이 높기 때문 PATH variable
입니다.
최신 정보:
/usr/local/bin
폴더에 액세스 할 수 없으면 다음을 수행하십시오.
- 홈 디렉토리에 폴더를 작성하고 호출하십시오
myscripts
. - 수행
ls -lart
쉘이 사용하는 시작 스크립트를 식별, 홈 디렉토리에..profile
또는 이어야합니다.bashrc
. - 시작 스크립트를 식별했으면 스크립트에 다음 줄을 추가하십시오-
export set PATH=$PATH:~/myscript
. - 추가 한 후에는 시작 스크립트를 소싱하거나 로그 아웃했다가 다시 로그인하십시오.
- 를 사용하여 스크립트를 실행하십시오
scriptname
.
를 사용하여 실행 가능한지 확인하십시오 chmod +x
. 기본적으로 현재 디렉토리는 PATH에 없으므로 디렉토리를 실행 ./script.sh
하거나 규정 된 경로로 참조해야합니다. 또는 정말로 필요한 경우 script.sh
PATH에 추가해야합니다. (시스템 경로를 수정할 수는 없지만 현재 환경의 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>
).
다음은 아이디어와 자동화를 제공하는 백업 스크립트입니다.
서버 : 우분투 16.04 PHP : 7.0 Apache2, MySQL 등 ...
# Make Shell Backup Script - Bash Backup Script
nano /home/user/bash/backupscript.sh
#!/bin/bash
# Backup All Start
mkdir /home/user/backup/$(date +"%Y-%m-%d")
sudo zip -ry /home/user/backup/$(date +"%Y-%m-%d")/etc_rest.zip /etc -x "*apache2*" -x "*php*" -x "*mysql*"
sudo zip -ry /home/user/backup/$(date +"%Y-%m-%d")/etc_apache2.zip /etc/apache2
sudo zip -ry /home/user/backup/$(date +"%Y-%m-%d")/etc_php.zip /etc/php
sudo zip -ry /home/user/backup/$(date +"%Y-%m-%d")/etc_mysql.zip /etc/mysql
sudo zip -ry /home/user/backup/$(date +"%Y-%m-%d")/var_www_rest.zip /var/www -x "*html*"
sudo zip -ry /home/user/backup/$(date +"%Y-%m-%d")/var_www_html.zip /var/www/html
sudo zip -ry /home/user/backup/$(date +"%Y-%m-%d")/home_user.zip /home/user -x "*backup*"
# Backup All End
echo "Backup Completed Successfully!"
echo "Location: /home/user/backup/$(date +"%Y-%m-%d")"
chmod +x /home/user/bash/backupscript.sh
sudo ln -s /home/user/bash/backupscript.sh /usr/bin/backupscript
/ home / user를 사용자 디렉토리로 변경하고 다음을 입력하십시오 : 스크립트를 실행하려면 터미널의 아무 곳 이나 backupscript를 입력하십시오 ! (/ usr / bin이 경로에 있다고 가정)
"#!/bin/sh"
스크립트 전에 입력하십시오 . 그런 다음 script.sh
예를 들어 저장하십시오 . 그것을 복사 $HOME/bin
하거나 $HOME/usr/bin
디렉토리는 다른 리눅스 배포판에서 다를 수 있지만 'bin'
홈 디렉토리 cd $HOME/bin
또는 $HOME/usr/bin
유형으로 끝나고 터미널 chmod 700 script.sh
에 입력하기 만하면 실행할 수 있습니다 run.sh
. 작동하지 않으면 chmod +x run.sh
대신 시도하십시오chmod 700 run.sh
다만:
/path/to/file/my_script.sh
'Programing' 카테고리의 다른 글
Resource Acquisition is Initialization (RAII)이란 무엇입니까? (0) | 2020.04.09 |
---|---|
C ++에서 CSV 파일을 읽고 구문 분석하는 방법 (0) | 2020.04.09 |
기존 파일을 열고 한 줄 추가 (0) | 2020.04.09 |
MySQL은 필드에서 일부 텍스트를 검색하고 바꿉니다. (0) | 2020.04.09 |
'svn cleanup'이 실패하면 어떻게해야합니까? (0) | 2020.04.09 |