最終更新日: 2026-08-29
TOP(About this memo)) > 一覧(Linux) > シェルスクリプト
#!/bin/sh でよい。#!/bin/bash
chmod 755 test.sh
./test.sh
# もしくは
sh test.sh
bash test.sh
rm、リダイレクトによる上書き)が含まれていないかは必ず目視で確認する。$? で直前のコマンドの終了コードを取得できる。some-command --project=$A --platform=$B
retval=$?
if [ $retval -ne 0 ]; then
echo "コマンドの実行に失敗しました。" >&2
exit 1
fi
if [ $# -ne 3 ]; then
echo "引数が足りません。" >&2
exit 1
fi
if [ -e "path/to/file.plist" ]; then
rm path/to/file.plist
fi
${#変数} … 文字列長${変数#パターン} … 先頭から最短一致した部分を削除${変数##パターン} … 先頭から最長一致した部分を削除${変数%パターン} … 末尾から最短一致した部分を削除${変数%%パターン} … 末尾から最長一致した部分を削除--project=example だった場合、${1#*=} は example という文字列になる。
$1 … 受け取った引数の文字列(この場合 --project=example)# … 先頭からの削除を指定する記号*= … = までの全ての文字列にマッチするパターンexport SOME_HOME=/path/to/somewhere
alias la='ls -la'
alias ll='ls -la'
shopt -s expand_aliases で展開させることも可能だが、意図しない挙動を招きやすいため推奨されない。スクリプト内では実体のコマンドを書くべき。sh -c / bash -c の注意-c で渡したコマンドは別プロセスとして実行される。そのため、そこで設定した変数やカレントディレクトリの変更は呼び出し元のシェルに反映されない。