web-dev-qa-db-ja.com

端末コマンド用のスクリプトファイルを作成するにはどうすればよいですか?

Windowsでは、cmdのコマンドを含むファイル(通常は.cmdまたは.batファイル)を作成できます。それらのファイルをクリックすると、cmd.exeが開き、ファイルに含まれるコマンドが実行されます。

Ubuntuでこれを行うにはどうすればよいですか?

これは重複していると思いますが、答えが見つかりません。
これらの質問に似ていますが、質問には答えません。

頻繁に使用する端末コマンドをファイルに保存する

。cmd/.batファイルを実行するUbuntuのCMD.exeエミュレーター

110
Seth

2つの方法があります。

まず、最も一般的なのはファイルを書き込むことです。最初の行が

#!/bin/bash

次に、ファイルを保存します。次に、chmod +x fileを使用して実行可能にする

次に、クリック(またはターミナルからファイルを実行)すると、コマンドが実行されます。通常、これらのファイルには拡張子はありませんが、.shまたはその他の方法で終了させることができます。

いくつかのメモ:

  • 最初の行がファイルを解釈するプログラムへのパスである場合、Linuxで任意の(および任意の)ファイルを実行できます。一般的な例には、/bin/python/bin/sh/bin/dashが含まれますが、奇妙なボールでも/bin/mysqlのように機能します
  • Bashは完全な言語です。 Windowsのcmd.exeよりもはるかに複雑です。関数、ループ、条件、文字列操作などをサポートする強力なプログラミング言語があります。
  • これらのドキュメント は、問題が発生した場合に役立ちます。
  • ファイルを実行可能にしたくない場合は、bashに引数として渡すことで実行できます:bash file/to/run.sh

単純なバッシュの例

#!/bin/bash  
echo "This is a Shell script"  
ls -lah  
echo "I am done running ls"  
SOMEVAR='text stuff'  
echo "$SOMEVAR"

2番目の方法は、scriptを使用してコマンドを記録することです。 scriptを実行してから、何かをするだけです。スタッフの作業が完了したら、exitと入力すると、スクリプトは、作成したすべての「スタッフ」を含むファイルを生成します。これはあまり使用されませんが、マクロなどを作成するのに非常によく機能します。 man script詳細については。

146
coteyr

シェルスクリプトを使用してファイルに書き込むということですか?以下にいくつかの方法を示します。

touch file

このメソッドは単にファイルを作成しますが、ファイルが既に存在する場合、変更日をそのコマンドを使用した時間に変更するだけです。

echo "text" > file

このメソッドは、fileの内容をtextに上書きします。ファイルをクリアしたい場合は、これを簡単に行うことができます:

echo "" > file

それに複数の行を書きたい、そして何千ものechoコマンドを使いたくない場合、このコマンドを使うでしょう:

cat << EOF > file
test
test1
foo
bar
EOF

これにより、1つのコマンドで複数の行を記述できます。 fileの内容は次のようになります。

test
test1
foo
bar

ファイルに追加する場合は、>>>に置き換えます。

お役に立てれば!


EDIT:なるほど、そうです、geditで.sh拡張子(オプションですが、良いアイデアです)を使用して、ファイルマネージャーでファイルを作成します。ファイルを右クリックして、[プロパティ]-> [権限]を選択し、Allow executing file as programを確認します。次に、それをダブルクリックすると実行されます:)。また、ターミナルでこれを行いたい場合は、このコマンドを実行して実行可能にすることができます(所有していない場合はSudoを追加することもできます)。

chmod +x file

そして実行するには:

./file
14
MiJyn

Windowsバッチファイルに相当するのはシェルスクリプトで、優れた入門ガイドは Bash Scripting です。

ほとんどの場合、コマンドラインで入力できるコマンドはシェルスクリプトに配置できます。

Windowsバッチファイルとは異なる点がいくつかあります。

  • シェルと呼ばれるさまざまなコマンドインタープリターがあります。デフォルトはbashですが、興味がある場合は、zsh、ksh、dash、Perl、pythonなど、他にもあります。

  • シェルスクリプトを実行するには、ファイルを実行可能にする必要があります。これは、chmod +x <filename>で実行できます

  • Ubuntuでは、現在のディレクトリはプログラム検索パスではないため、./<filename>ではなく<filename>を実行する必要があります

  • 変数名は$<varname>ではなく%<varname>%です

  • シェルファイル内のコマンドは、バッチファイルのようにデフォルトでは印刷されません。

  • ファイル名の拡張子は.shにすることも、(より慣習的に)拡張子を使用する必要がない場合もあります。 ファイルの最初の行に#!/bin/bashを入力 。これは、ファイルの実行に使用するプログラムをUbuntuに指示します。

  • コメントは、remではなく、#で始まります。

これがお役に立て、楽しいスクリプト作成をお楽しみください!

14
iBelieve