"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
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★」
스크립트명을 직접 사용하기 위한 전제 조건은 다음과 같습니다.
- 합니다(shebang ( shebang ( shebang ( shebang
#!/bin/bash
를 맨 위에 표시합니다. chmod u+x scriptname
실행 가능하게scriptname
는 스크립트의 이름입니다).- 를 " " " 아래에 배치합니다.
/usr/local/bin
더입니니다다- 주의: 아래쪽에 둘 것을 권장합니다.
/usr/local/bin
그 는 이미 되어 있을 이 높기 때문입니다.PATH
★★★★★★ 。
- 주의: 아래쪽에 둘 것을 권장합니다.
- 이름만 하세요.
scriptname
.
할 수 /usr/local/bin
다음 작업을 수행합니다.
를 만들고, 을 「홈 디렉토리」라고 .
bin
.ls -lA
홈 디렉토리에서 셸이 사용하고 있는 기동 스크립트를 식별합니다. 중 하나여야 ..profile
★★★★★★★★★★★★★★★★★」.bashrc
.기동 스크립트를 식별하면, 다음의 행을 추가합니다.
PATH="$PATH:$HOME/bin"
추가된 후 시작 스크립트를 소스하거나 로그아웃했다가 다시 로그인합니다.
「」, 「」를 붙입니다.
.
이름 " " " " " " " " " )을 입력합니다.. .profile
★★★★★★★★★★★★★★★★★」. .bashrc
이름만 하세요.
scriptname
.
만 하면 .chmod +x
PATH에 에 PATH로 ./script.sh
- 또는 정규 경로로 참조합니다.정말로 한 것이 , 꼭 필요한 것이 있습니다.script.sh
PATH에 추가해야 합니다.(시스템 경로를 변경할 수 있는 접근권은 없지만 현재 환경의 PATH는 거의 확실하게 변경할 수 있습니다.)은 ,, 크, 크, 크, 크, 크, 크, this 등이 있다고 가정합니다.#!/bin/sh
.
에일리어스를 사용할 수도 있습니다.이 에일리어스는 셸 스크립팅과 실제로 관련된 것이 아니라 셸에만 관련된 것으로, 다음과 같이 간단합니다.
alias script.sh='sh script.sh'
하면 쓸 수 있어요.script.sh
- 이 은 다른 수 없습니다.*.sh
file) file합니다.sh script.sh
.
에서는, 이 파일은 「이러다」라고 .myShell
먼저 이 파일을 작성해야 합니다.처음에는 다음과 같이 입력합니다.
sudo nano myShell
.sh
? 에서 실행할 when when 、 미 、 터 、 터 、 터 、 문 、 문 니 다 。myShell
리우의명명령행행행행행행 리해 행?
맨위이 ,, 노, 노, 노이어야 #!/bin/bash
그러면 계속하기 전에 새 행을 남겨둘 수 있습니다.
을 위해 기본적인 하겠습니다.Hello World!
다음과 같이 입력합니다.
echo Hello World!
그 후 예시는 다음과 같습니다.
#!/bin/bash
echo Hello World!
이제 파일을 저장하고 다음 명령을 실행합니다.
chmod +x myShell
파일로 . now now now now now now now now now now now now로 이동할 수 있습니다./usr/bin/
다음 명령을 사용합니다.
sudo cp myShell /usr/bin/
!!의!!!!!!!!!!!!에 '이렇게 하다'라고 할 수 .myShell
라고 써있어야 합니다.Hello World!
프로그램의 실행 가능 비트를 활성화해야 합니다.
chmod +x script.sh
ㄴ, ㄴ, ㄴ, ㄴ, ㄴ데../script.sh
폴더는 PATH의 할 수 있습니다..bashrc
파일(홈 디렉토리에 있음)을 클릭합니다.파일 끝에 다음 행을 추가합니다.
export PATH=$PATH:/your/folder/here
sudo install (스크립트 이름) /usr/local/bin/ (해당 스크립트를 실행하기 위해 입력할 내용)을 입력할 수 있습니다.
::sudo install quickcommit.sh /usr/local/bin/quickcommit
패스워드를
.sh 없이 임의의 디렉토리에서 실행할 수 있게 되었습니다.
PATH. (PATH).
【프로파일】.profile. 【프로파일】
file.profile 에 합니다.
PATH=$PATH:.
Shebang을꼭 .#!/bin/bash
실행 「 using the script 」 、 「 using 」 、 「 」 、 「 」 、 「 」 。chmod +x <File Name>
를 참조해 주세요.
다음은 아이디어와 자동화를 제공하는 백업 스크립트입니다.
서버: Ubuntu 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
수 Distros로 끝나는 것은 "Linux Distros"입니다.'bin'
.cd $HOME/bin
★★★★★★★★★★★★★★★★★」$HOME/usr/bin
「」라고 입력합니다.chmod 700 script.sh
'실행하다'라고 치기만 .run.sh
안 되면 해 봐.chmod +x run.sh
chmod 700 run.sh
모든 파일을 실행 파일로 만들기
migrate_linux_amd64라는 실행 파일이 있으며 이 파일을 "migrate"와 같은 명령어로 실행한다고 가정합니다.
- 먼저 파일 위치에서 실행 파일을 테스트합니다.
[oracle@localhost]$ ./migrate.linux-amd64
Usage: migrate OPTIONS COMMAND [arg...]
migrate [ -version | -help ]
Options:
-source Location of the migrations (driver://url)
-path Shorthand for -source=file://path
-database Run migrations against this database (driver://url)
-prefetch N Number of migrations to load in advance before executing (default 10)
-lock-timeout N Allow N seconds to acquire database lock (default 15)
-verbose Print verbose logging
-version Print version
-help Print usage
Commands:
goto V Migrate to version V
up [N] Apply all or N up migrations
down [N] Apply all or N down migrations
drop Drop everyting inside database
force V Set version V but don't run migration (ignores dirty state)
version Print current migration version
권한이 확인하십시오.
-rwxr-xr-x 1 oracle oinstall 7473971 May 18 2017 migrate.linux-amd64
않으면 한다.chmod +x migrate.linux-amd64
다음 해 주세요.
/usr/local/bin
root을 을 수행합니다.스도 스위치
sudo cp migrate.linux-amd64 /usr/local/bin
sudo chown oracle:oracle /user/local/bin/migrate.linux.amd64
- 그런 다음 다음과 같은 심볼 링크를 만듭니다.
sudo ln /usr/local/bin/migrate.linux.amd64 /usr/local/bin/migrate
sudo chown oracle:oracle /usr/local/bin/migrate
- 마지막으로 경로 또는 사용자 프로파일에 /usr/local/bin을 추가합니다.
export PATH = $PATH:/usr/local/bin
- 그런 다음 명령어를 "migrate"로 실행합니다.
[oracle@localhost]$ migrate
Usage: migrate OPTIONS COMMAND [arg...]
migrate [ -version | -help ]
Options:
-source Location of the migrations (driver://url)
-path Shorthand for -source=file://path
-database Run migrations against this database (driver://url)
-prefetch N Number of migrations to load in advance before executing (default 10)
-lock-timeout N Allow N seconds to acquire database lock (default 15)
-verbose Print verbose logging
-version Print version
-help Print usage
Commands:
goto V Migrate to version V
up [N] Apply all or N up migrations
down [N] Apply all or N down migrations
drop Drop everyting inside database
force V Set version V but don't run migration (ignores dirty state)
version Print current migration version
- 파일 속성을 사용하여 스크립트 파일을 실행 파일로 만듭니다.
- ~/ . rcrc 。
alias <alias namme> = <full script file path>'
- 이치노
source ~/.bashrc
모두가 제안한 것에 더해서.이러한 솔루션을 사용하더라도 사용자가 sudo로 스크립트를 실행하려는 경우 문제는 계속됩니다.
예: chmod a+x /tmp/myscript.sh sudo ln -s / tmp / myscript.sh / usr / local / bin / myscript
myscript를 입력하면 동작하지만 sudo myscript를 입력하면 명령을 찾을 수 없습니다.
sudo를 사용하려면 sudo sh myscript 또는 sudo bash myscript를 입력해야 합니다.
나는 이 문제를 해결할 방법이 떠오르지 않는다.
그냥:
/path/to/file/my_script.sh
언급URL : https://stackoverflow.com/questions/8779951/how-do-i-run-a-shell-script-without-using-sh-or-bash-commands
'itsource' 카테고리의 다른 글
마우스 이벤트 전파 중지 (0) | 2023.04.27 |
---|---|
패널 또는 플레이스홀더 사용 (0) | 2023.04.22 |
약한 참조와 소유하지 않은 참조의 차이점은 무엇입니까? (0) | 2023.04.22 |
Azure 함수 - 함수는 정적 클래스 안에 작성해야 합니다. (0) | 2023.04.22 |
Swift 사전을 통한 반복 (0) | 2023.04.22 |