私はbashスクリプトを学んでおり、これを305行目の/ usr / share / bash-completionで見つけました。
local cword words=()
それは何をするためのものか?オンラインのすべてのチュートリアルはただの形式です
local var=value
私はbashスクリプトを学んでおり、これを305行目の/ usr / share / bash-completionで見つけました。
local cword words=()
それは何をするためのものか?オンラインのすべてのチュートリアルはただの形式です
local var=value
回答:
私はjordanmの回答が好きですが、経験の浅いLinux
ユーザーにそのような質問に自分で対処する方法を示すことも同様に重要だと思います。
推奨される方法は、Googleの検索結果ページに表示されるランダムページで回答を探すよりも高速で多用途です。
まず、中に実行できるすべてのコマンドBash
のような、それに明示的なパスを入力せずに./command
2つのカテゴリに分けることができますBash shell builtins
とexternal commands
。Bash shell builtins
と一緒にインストールされ、Bash
その一部であるexternal commands
が、一部ではないBash
。これは重要です。Bash shell builtins
内部に文書化されてman bash
おり、それらの文書化はhelp
コマンドで呼び出すこともできますexternal commands
が、通常は独自に文書化されているmanpages
か、-h, --help
フラグを立てます。コマンドがあるかどうかを確認しますBash shell builtin
かexternal command
:
$ type local
local is a shell builtin
how command would be interpreted if used as a command name
(からhelp type
)が表示されます。ここでは、それは見ることができlocal
ていますshell builtin
。別の例を見てみましょう:
$ type vim
vim is /usr/bin/vim
ここでvim
は、shell builtin
それがにある外部コマンドであることがわかり/usr/bin/vim
ます。しかし、時々 、同じコマンドが両方としてインストールすることができたexternal command
とするshell builtin
と同時に。に追加-a
しtype
て、すべての可能性をリストします。例:
$ type -a echo
echo is a shell builtin
echo is /usr/bin/echo
echo is /bin/echo
ここで、それがecho
a shell builtin
とanの両方であることがわかりexternal command
ます。ただし、このリストの最初に表示されるので、入力echo
して押しReturnただけの場合はshell builtin
呼び出されます。これらのバージョンはすべてecho
同じである必要はありません。たとえば、私のシステムで/usr/bin/echo
は--help
フラグを取りますが、a builtin
は取りません。
さて、それ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]
。すべての間[
と]
され、オプション。これmanpages
は、*nix
世界の多くの形式のドキュメントで使用されている一般的な規則です。そうは言っても、質問で尋ねたコマンドは完全に合法です。また、...
文字は、前の引数を繰り返すことができることを意味します。この規則については、一部のバージョンでも読むことができます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.
そのため、1日の終わりに、さまざまなコマンドがどのように機能するかを理解しやすくなることを願っていますLinux
。
local
ていますか?
man bash
ます。そこに入ったら、入力/Arrays$
して配列のセクションにジャンプします。($
後の部分Arrays
は、セクションへのテキスト内の参照を循環させないようにするためのものです。)そこからf
、ページb
を進めたり戻したりするように入力できます。入力q
したら、入力してmanページを終了します。
help
引数を指定せずに実行すると、詳細を確認したい場合はすべてのbashビルトインがリストされます。
local
現在定義されている関数でのみスコープを持つように変数を宣言するだけなので、メインの実行環境は値を「見る」ことができません。local
関数の外部では使用できません。例
func() {
nonlocal="Non local variable"
local onlyhere="Local variable"
}
func
echo $nonlocal
echo $onlyhere
出力:非ローカル変数
その$onlyhere
ため、関数のスコープ外では見えませんでした。
var=()
あなたが探しているものの名前を知らなくても理解するのは少し難しいと思います。;)