私はbashスクリプトを学んでいますが、/usr/share/bash-completionの305行目でこれを見つけました:
local cword words=()
それは何をしますか?インターネット上のすべてのチュートリアルは単なる形式です。
local var=value
ベストアンサー1
好きですがジョーダンの答え経験の浅いLinuxユーザーに、これらの問題を自分で処理する方法を示すことも同様に重要だと思います。
提案された方法は、Googleの検索結果ページに表示されている任意のページで回答を見つけるよりも高速で多様です。
まず、明示的なパスを入力しなくてもBashで実行できるすべてのコマンドは、./command
2つのカテゴリに分けられます。Bash シェル組み込み関数そして外部コマンド。 Bash シェルの組み込みコマンドは Bash とともにインストールされ、Bash の一部ですが、外部コマンドは Bash の一部ではありません。これは、Bashシェルの組み込みが内部的に文書化されており、その文書がコマンドを介してman bash
呼び出さhelp
れる可能性がありますが、外部コマンドは通常、独自のマニュアルページに文書化されるか、ある種のフラグを採用するために重要です。-h, --help
外部コマンド:
$ type local
local is a shell builtin
コマンド名(でhelp type
)として使用される場合、コマンドがどのように解釈されるかを示します。ここでこれがlocal
シェル組み込み関数であることがわかります。別の例を見てみましょう。
$ type vim
vim is /usr/bin/vim
vim
ここではこれがシェル組み込みではなくに位置していることがわかります/usr/bin/vim
。しかし、時には、同じコマンドを外部コマンドとシェル組み込みとして同時にインストールすることができます。すべての可能性をリスト-a
するには追加してくださいtype
。例:
$ type -a echo
echo is a shell builtin
echo is /usr/bin/echo
echo is /bin/echo
echo
ここでは、シェル組み込みコマンドと外部コマンドであることがわかります。しかし、ただ入力してecho
押すと、Returnシェルの組み込みがこのリストの最初に表示されるため呼び出されます。これらのバージョンはすべてecho
同じである必要はありません。たとえば、私のシステムにはタグが/usr/bin/echo
必要です--help
が、Bash組み込みシステムには必要ありません。
さて、これがシェル組み込みであることがわかったので、どのように機能するかをlocal
見てみましょう。
$ help local
local: local [option] name[=value] ...
Define local variables.
Create a local variable called NAME, and give it VALUE. OPTION can
be any option accepted by `declare'.
Local variables can only be used within a function; they are visible
only to the function where they are defined and its children.
Exit Status:
Returns success unless an invalid option is supplied, an error occurs,
or the shell is not executing a function.
最初の行に注意してくださいname[=value]
。そして[
その間の]
すべて任意に選択できる。これは、世界中の多くのマニュアルページや文書フォームで使用される一般的な規則です*nix
。しかし、あなたの質問から要求されたコマンドは完全に正当です。 Character は、...
前の引数を繰り返すことができることを意味します。以下では、この規則について読むこともできますman man
。
The following conventions apply to the SYNOPSIS section and can be used
as a guide in other sections.
bold text type exactly as shown.
italic text replace with appropriate argument.
[-abc] any or all arguments within [ ] are optional.
-a|-b options delimited by | cannot be used together.
argument ... argument is repeatable.
[expression] ... entire expression within [ ] is repeatable.
最後に、Linuxでさまざまなコマンドがどのように機能するのかをより簡単に理解できることを願っています。