導入

参考:

Bash Script の作法 – Qiita

文法

参考:

Shell Commands | Bash Reference Manual

Shell Grammar Rules | The Open Group Base Specifications Issue 7, 2018 Edition

変数

こちらのページを参照

参考:

変数について | ファイヤープロジェクト

Operations on Variables | Bash Guide for Beginners (tldp.org)

case sensitive or not? – Stack Overflow

declare

参考:

Bash で変数を宣言する – Qiita

declare コマンド – 変数を宣言する | Linuxコマンド.NET

declare | Bash Hackers Wiki

$@ と $* の違い

#! /usr/bin/env bash
time "$@"

参考:

$@ (Dollar at Variable) Loses Quote Characters | Biostar

What does “$@” mean in Bash? – Quora

変数名を取り出す

$ i_want_to_know_variable_name="Hey!"
$ echo "${!i_want_to_know_variable_name@}"

参考:

In bash, how can I echo the variable name, not the variable value? – Unix & Linux Stack Exchange

間接変数展開 (Indirect Variable Expansion)

$ fire="red!"
$ color="fire"
$ echo "${!color}"
red!

参考:

Bash expand variable in a variable – Stack Overflow

How to use call-by-reference on an argument in a bash function – Unix & Linux Stack Exchange

参照渡し (nameref)

local -n コマンドで参照渡しの変数を定義する。外部の変数を書き換えられる。

$ function change () \
{ \
  local -n ref=$1; \
  ref="bye"; \
}
$ greeting="hello"
$ echo $greeting
hello
$ change greeting
$ echo $greeting
bye

参考:

Shell Parameters | Bash Reference Manual

declare | Bash Hackers Wiki

Passing arguments by reference – Stack Overflow

Shell variables in a for loop – Unix & Linux Stack Exchange

間接参照

参考:

Indirect References | Advanced Bash-Scripting Guide (tldp.org)

引用符/クオォーテーションの違い

  • Weak Quoting: "$var is replaced"
  • Strong Quoting: 'kind of $var is left as is'
  • ANSI-C Quoting: $'kind of \e is replaced escape sequence'
  • Locale Translation: $"string can be localized"

参考:

クォートの種類と変数への格納 – Qiita

クォートの使い分け方 | server-memo.net

シェルスクリプトのクォートの使い方と変数埋め込みの方法まとめ | Web 備忘録

シェルの引用符/クォーテーションの使い方 | アナグマのモノローグ

シェルにおけるシングルクォート/ダブルクォート/バッククォートで囲った場合の挙動の違い | NJ-CLUCKER

クォートを含む文字列の展開について – スタック・オーバーフロー

Quotes and Escaping | Bash Hackers Wiki

Quoting Characters | Bash Guide for Beginners

ANSI-C Quoting | Bash Reference Manual

Locale Translation | Bash Reference Manual

二重引用符/ダブルクォーテーション

参考:

シェルスクリプトの変数はダブルクォートしなければいけない!という話 – Qiita

How to escape a double quote inside double quotes? – Stack Overflow

Why do we double-quote a dollar sign evaluation in Bash? – Unix & Linux Stack Exchange

ダブルクォーテーションとシングルクォーテーションの違い

参考:

Shell Script のダブルクォートとシングルクォートの違い – Qiita

ANSI-C クォーティング

参考:

ANSI-C Quoting | Bash Reference Manual

How does the leading dollar sign affect single quotes in Bash? – Stack Overflow

How to escape quotes in shell? – Unix & Linux Stack Exchange

ロケールトランスレーション

参考:

Locale Translation | Bash Reference Manual

What does it mean to have a $”dollarsign-prefixed string” in a script? – Unix & Linux Stack Exchange

コプロセス (coproc)

参考:

Bash の coproc について – Qiita

Bash 4 のコプロセスのチュートリアル – Qiita

Coprocesses | Bash Reference Manual

How do you use the command coproc in various shells? – Unix & Linux Stack Exchange

リファレンス

Bash Reference Manual (All in One Page) | GNU.org

Bash Reference Manual (Separate Contents) | GNU.org

まとめ

文字列/配列/構文などの取り扱い方 | bioinformatics

UNIX & Linux コマンド/シェルスクリプト リファレンス | SUNONE

記事をシェアする:
タグ:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Protected by reCAPTCHA