シェルスクリプトのチートシート

変数操作

# 変数の定義
MY_VAR="Hello World"

# 変数の使用
echo $MY_VAR

# 環境変数のエクスポート
export MY_VAR

文字列操作

# 文字列の連結
GREETING="Hello,"
NAME="Alice"
MESSAGE=$GREETING" "$NAME
echo $MESSAGE

# 文字列の長さ
echo ${#MESSAGE}

# 部分文字列の抽出
echo ${MESSAGE:0:5} # Hello

ファイル操作

# ファイルの作成
touch myfile.txt

# ファイルのコピー
cp myfile.txt mycopy.txt

# ファイルの移動または名前の変更
mv mycopy.txt mynewfile.txt

# ファイルの削除
rm mynewfile.txt

ディレクトリ操作

# ディレクトリの作成
mkdir mydir

# ディレクトリの削除(空の場合)
rmdir mydir

# ディレクトリの削除(中身がある場合)
rm -r mydir

ループ処理

# forループ
for i in {1..5}; do
  echo "Number $i"
done

# forループのネスト
for i in {1..3}; do
  for j in {A..C}; do
    echo "Number $i, Letter $j"
  done
done

# whileループ
COUNTER=0
while [ $COUNTER -lt 5 ]; do
  echo "Counter $COUNTER"
  let COUNTER=COUNTER+1
done

条件分岐

# if文
if [ $MY_VAR == "Hello World" ]; then
  echo "True"
else
  echo "False"
fi

# case文
case $MY_VAR in
  "Hello World")
    echo "Hello World";;
  "Bye World")
    echo "Bye World";;
  *)
    echo "Other";;
esac

関数

# 関数の定義と使用
function greet {
  echo "Hello, $1"
}
greet "Alice"

ファイルの読み書き

# ファイルへの書き込み
echo "Hello World" > myfile.txt

# ファイルからの読み込み
while IFS= read -r line; do
  echo "$line"
done < myfile.txt

ネットワーキング

# wgetを使用してファイルをダウンロード
wget http://example.com/myfile

# cURLを使用してHTTPリクエストを送信
curl http://example.com