ワークスペース

Bash

ターミナル操作とファイル処理を自動化する言語

まず定義

Bash とは何か

Bash は、コンピューターに正確な手順を伝えるためのプログラミング言語です。最初は暗記ではなく「入力、手順、出力」の流れだけをつかみます。

最小実行情報ファイル script.sh実行 bash script.sh習慣 Bash の小さな構文を一つ学んだら、すぐ最小例を入力して実行する
プログラム

順番に実行される命令の集まりです。入力を読み、処理し、出力します。

値と変数

値はデータです。変数はそのデータにつける名前です。

関数

小さな仕事をまとめたものです。入力を受け取り、結果を返します。

実行環境

POSIX 互換ターミナル が script.sh のコードを実行します。

最初に読むコード

コマンド

pwd ls cd echo
name="Ada"
echo "$name"
出力 Ada

言語の系譜

Bash の系譜

Bash の出自、近い言語、次に学ぶ候補を一目で確認します。

起源
shUnixawk
現在Bash自動化とコマンド言語ファミリー
ファミリー自動化とコマンド言語ファミリー
向いている用途

向いている用途 ターミナル操作とファイル処理を自動化する言語

ゼロベース

1規則を一つ読む2出力を予測3記憶で入力4チェックを実行5一つ変えて反復

問題バンク

検索してから練習

段階を選ぶか、現在の言語の問題を検索して練習へ移動します。

18 件
問 1選択第1段階 定義

Bash 問題 1

Bash 問題 1 echo 出力 に最も合う説明を選んでください

問 2選択第1段階 定義

Bash 問題 2

Bash 問題 2 変数代入 に最も合う説明を選んでください

問 3選択第1段階 定義

Bash 問題 3

Bash 問題 3 パイプ に最も合う説明を選んでください

問 4選択第1段階 定義

Bash 問題 4

Bash 問題 4 for ループ に最も合う説明を選んでください

問 5選択第1段階 定義

Bash 問題 5

Bash 問題 5 echo 出力 に最も合う説明を選んでください

問 6選択第1段階 定義

Bash 問題 6

Bash 問題 6 変数代入 に最も合う説明を選んでください

問 7選択第1段階 定義

Bash 問題 7

Bash 問題 7 パイプ に最も合う説明を選んでください

問 8選択第1段階 定義

Bash 問題 8

Bash 問題 8 for ループ に最も合う説明を選んでください

問 9選択第1段階 定義

Bash 問題 9

Bash 問題 9 echo 出力 に最も合う説明を選んでください

問 10選択第1段階 定義

Bash 問題 10

Bash 問題 10 変数代入 に最も合う説明を選んでください

問 11選択第1段階 定義

Bash 問題 11

Bash 問題 11 パイプ に最も合う説明を選んでください

問 12選択第1段階 定義

Bash 問題 12

Bash 問題 12 for ループ に最も合う説明を選んでください

問 13選択第1段階 定義

Bash 問題 13

Bash 問題 13 echo 出力 に最も合う説明を選んでください

問 14選択第1段階 定義

Bash 問題 14

Bash 問題 14 変数代入 に最も合う説明を選んでください

問 15選択第1段階 定義

Bash 問題 15

Bash 問題 15 パイプ に最も合う説明を選んでください

問 16選択第1段階 定義

Bash 問題 16

Bash 問題 16 for ループ に最も合う説明を選んでください

問 17選択第1段階 定義

Bash 問題 17

Bash 問題 17 echo 出力 に最も合う説明を選んでください

問 18選択第1段階 定義

Bash 問題 18

Bash 問題 18 変数代入 に最も合う説明を選んでください

選択問題

Bash 問題 1

問 1選択新規

Bash 問題 1 echo 出力 に最も合う説明を選んでください

echo "$name"

参考

script.sh のパターン

POSIX 互換ターミナルbash script.sh
記憶から書く小さな概念を見たら閉じて自分で再現します
コードを追跡実行前に変数の変化を一行ずつ追います
自分で入力コピーを減らし一つずつエラーを直します

pwd ls cd echo

コマンド

name="Ada"
echo "$name"
  • 変数を引用符で囲む
  • echo から始める
  • まず小さなフォルダで実行する

grep sort uniq wc

パイプ

printf "a\na\nb\n" | sort | uniq
  • 出力を次のコマンドへ渡す
  • 検索には rg か grep を使う
  • wc で数える

shebang variables if loops

スクリプト

for file in *.txt; do
  echo "$file"
done
  • 安全な script には set -e を使う
  • path を引用符で囲む
  • 削除前に dry run する