端末に入力するコマンドとスクリプトに含まれるコマンドに違いはありますか?
答え1
bash
端末はコマンドを要求して実行するシェル(通常)を実行します。
この対話モードに加えて、シェルを使用してファイルからコマンドを実行することもできます。ファイルからコマンドを実行するには、シェルを直接呼び出すbash script
か、「shebang」を使用してファイルを起動して#!/bin/bash
実行可能にすることができます(chmod +x script
)。その後、スクリプトをバイナリとして処理して実行したり、./script
シェルが探している場所に配置したりできます。 ( echo $PATH
)
対話型シェルと実行中のシェルの両方bash
。 「Linuxを学ぶ最初の日」の観点から、bashは両方のモードでまったく同じように動作します。 - 後で微妙な違いを発見することもできます。もっと詳しく知りたい場合は、man bash
「interactive」という言葉を読んで検索してみることをお勧めします。 (ボタンを押すとマニュアルページを検索できます/
。)
注目すべき重要な点の1つは、スクリプトが新しいプロセスとして実行されることです。具体的には、スクリプトに設定された変数が呼び出しシェルに表示されないことを意味します。
$ export a=1
$ echo $a
1
$ bash -c 'echo $a;a=2;echo $a' # change the value in a script
1
2
$ echo $a # value not changed here
1
$
エクスポートしないと、a
内部スクリプトも表示されません。
答え2
一般的に答えは「いいえ」です。シェルのコマンドは、スクリプトの方法、構文、および意味の点で同じです。
ただし、環境設定(使用される変数と設定項目)に関するいくつかの小さな詳細があります。
Linuxで選択された対話型シェルはbashですが、スクリプトはしばしば他のインタプリタ(bash
sh
の以前のバージョンでありbashと同じ)を使用するため、使用しているシェル(現在のシェルの名前)が伝統的に使用されているシェルであることを考慮する必要があります。変数に保存されています。入力してください。)bash
ksh
SHELL
echo $SHELL
インタラクティブセッションとスクリプトの実行に対して同じインタプリタ設定に違いがある可能性があります。
答え3
いいえ。スクリプトは、端末に入力できるコマンドのリストです。
スクリプトの内容全体を端末に貼り付けると、実行した結果と同じ結果になります。
代わりに、端末コマンドをファイルに「保存」して再利用可能なスクリプトに変換して、家族や友人と共有できます。