私は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のような、それに明示的なパスを入力せずに./command2つのカテゴリに分けることができます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
ここで、それがechoa 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=()あなたが探しているものの名前を知らなくても理解するのは少し難しいと思います。;)