回答:
それを実行するさらに別の方法(今回は実行権限を設定しない):
bash /path/to/scriptname
スクリプトを含むディレクトリにcdするか、$ PATHにあるbinフォルダーに置きます。
次に入力
./scriptname.sh
同じディレクトリにある場合、または
scriptname.sh
binフォルダーにある場合。
./scriptname.sh
私のために働くが、scriptname.sh
与えるscriptname.sh: command not found
。-rwxr-xr-x
その権限です。
cd
どこにでもというアドバイスは、初心者によくある別の誤解を犯します。スクリプトが特定のディレクトリで実行することを必要とする依存関係をスクリプトに内部的に持たない限り(スクリプトがポイントするオプションを不可解に提供しないデータファイルを読み取る必要がある場合など)cd
、実行するためにどこにも必要がないはずです。多くの場合、したくありません。
あなたがすることができます:
sh scriptname.sh
sh
へのシンボリックリンクであるbash
、またはスクリプトがどんなバッシュ固有の構文を使用していない場合。前者の場合、のbash
代わりにを使用することがsh
唯一の正しいポータブルなソリューションです。後者の場合、OPは特にBashスクリプトのアドバイスについて尋ねたので、これはこの特定の質問に対する正しい答えではありません。間違った答えを実行することは無責任です。違いを理解できないユーザーはここに頻繁に投稿し、この「私にとってはうまくいった」という答えがうまくいかなかった理由を示す必要があります。
cdコマンドを使用して、スクリプトが配置されている場所にディレクトリを変更します。
次に入力します
bash program-name.sh
cd
どこにもする必要はありません。の引数として任意の複雑なパス名を指定できbash
ます。実際、ファイル名の引数をとるプログラムはすべてこのように機能します(または、恐ろしいことに、驚くほど壊れています)。
これは古いスレッドですが、私はそれを偶然見つけました。誰もまだ完全な答えを出していないことに驚いています。だからここに行く...
Q:これをターミナルで実行するにはどうすればよいですか?
混乱と対立:
sudo
。このコマンドは、別のユーザーまたは「root」(管理者)ユーザーとしてコマンドを実行するために予約されています。ここに素晴らしいポスト。(スクリプトの実行方法を学んでいるだけの人は、新しいプログラムのインストールなど、本当に必要がない限り、このコマンドを使用しないでください。スクリプトを置くのに適した場所は〜/ binフォルダーです。を入力するcd ~/bin
かcd $HOME/bin
、ターミナルプロンプトから入力します。そのフォルダに対する完全な権限が与えられます。)
Unix / Linuxタイプシステムのターミナルから「このスクリプトを実行」するには、次の3つのことを行う必要があります。
スクリプトの場所をシステムに通知します。(一つを選ぶ)
/path/to/script.sh
。入力するpwd
かecho $PWD
ターミナルでフルパスを確認できます。./
パスに使用します(例:)./script.sh
。簡単です。PATH
名前を入力します(例:)script.sh
。システムを確認するにはPATH
、入力するecho $PATH
かecho -e ${PATH//:/\\n}
、リストを整理します。スクリプトに実行権限があることをシステムに通知します。(一つを選ぶ)
システムにスクリプトのタイプを伝えます。(一つを選ぶ)
BASH /path/to/script.sh
またはPHP /path/to/script.php
)スクリプトに.phpや.pyなどの拡張子がある場合、それはスクリプト名の一部であり、含める必要があります。#!/bin/bash
例では()があると思うします。それをスクリプトの最初の行として使用している場合、システムはそのプログラムを使用してスクリプトを実行します。プログラムを入力したり、拡張機能を使用したりする必要はありません。PATH
を使用して、最初にプログラムのバージョンを選択し、#!/usr/bin/env
その後にプログラム名(#!/usr/bin/env bash
またはなど#!/usr/bin/env python3
)を選択させることもできます。ここで徹底的に議論されるように、長所と短所があります。script.sh
でscript.php
は、これらのスクリプトのリテラルファイル名であり、ファイル名に拡張子を付ける場合は、スクリプトを実行するときにそれを含める必要があります(その逆も同様です。スクリプトがそうでない場合)。拡張子はありません。拡張子を付けないでください)。これは、たとえば、ファイル名から、.bat
または.exe
ファイル名を省略できるDOSとは異なり、実行可能と見なされるためには、小さなセットの拡張子を持つファイルが必要です。
スクリプトファイルを使用できるディレクトリまたはフォルダーにいる場合は、次のようにして、実行可能モードでファイルのアクセス許可を変更するだけです。
chmod +x your_filename.sh
その後、次のコマンドを使用してスクリプトを実行します。
$ sudo ./your_filename.sh
の上に "。" 現在のディレクトリを表します。注意!bashスクリプトファイルが存在するディレクトリにいない場合は、次のコマンドを使用して、ファイルが配置されているディレクトリを変更します。
cd Directory_name/write the complete path
コマンド。そうしないと、スクリプトを実行できません。
sudo
ある間違った、潜在的に恐ろしく間違っているあなたはどの虐待あなたが不それを与えた権限を信頼できないスクリプトにそれを使用する場合。
cd
どこかへのアドバイスは理解しにくいですが、おそらく間違っています。
chmod +x scriptname
、その後./scriptname
。