端末に入力するコマンドとスクリプトに含まれるコマンドに違いはありますか?
ベストアンサー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
内部スクリプトも表示されません。