"sh"または "bash"コマンドを使用せずに実行したいシェルスクリプトがあります。例えば:
代わりに:sh script.sh
使いたい:script.sh
これどうやってするの?
P.S (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
ファイルでは機能しません)を使用できます。
プログラムの実行可能ビットを有効にする必要があります。
chmod +x script.sh
それなら./script.sh
を使うことができます
あなたの.bashrc
ファイル(あなたのホームディレクトリにある)のPATHにフォルダを追加することができます。この行をファイルの末尾に追加します。
export PATH=$PATH:/your/folder/here
この例では、ファイルは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!
と表示されます。
あなたは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>
を使用して)スクリプトを実行可能にするだけです。
ただ
/path/to/file/my_script.sh
これが私のバックアップスクリプトで、アイデアと自動化を提供します。
サーバー: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
にコピーしてください
ディレクトリはLinuxのディストリビューションごとに異なる場合がありますが、それらは'bin'
で終わり、ホームディレクトリcd $HOME/bin
または$HOME/usr/bin
にありますchmod 700 script.sh
と入力してください
そしてターミナルでrun.sh
とタイプするだけで実行できます。うまくいかない場合は、chmod +x run.sh
の代わりにchmod 700 run.sh
を試してください。