Linuxシェルコマンドの基本ガイド
シェルechoコマンド
通常の文字列を表示
echo "こんにちは、世界"
エスケープ文字を表示
echo "これは\"テスト\"です"
変数を表示
read user_name # Pythonのinput()に相当
echo "${user_name}はユーザー名です"
read -p "お名前を入力してください:" name # プロンプト表示
echo "${name}様、ようこそ"
改行を表示
echo -e "最初の行\n"
echo "2番目の行"
改行なしで表示
echo -e "続けて表示 \c"
echo "次の行"
結果をファイルへリダイレクト
echo "この内容がファイルに保存されます" > output.txt
文字列をそのまま出力(エスケープや変数展開なし)
echo '${user_name}\"'
コマンド実行結果を表示
echo `date`
シェルreadコマンド
readコマンド:キーボードからの入力を読み取る
read item1 item2 item3 # スペースで区切って読み取る
echo $item1 $item2 $item3
read -p "年齢を入力してください:" age
echo "あなたの年齢は:${age}歳です"
read -p "パスワードを入力してください:" -s -t 5 password
echo
echo "パスワードは受け取りました"
シェルprintfコマンド
printfコマンド
printf "%-10s %-8s %-4s\n" 名前 性別 体重kg # (-は左寄せ、なしは右寄せ)
printf "%-10s %-8s %-4.2f\n" 田中 男 68.7543
printf "%-10s %-8s %-4.2f\n" 佐藤 女 52.1234
printf "%-10s %-8s %-4.2f\n" 鈴木 男 75.8
printf "%-10s %-8s %-4.2f\n" 山田 女 48.56789
# -10sは10文字幅を意味し、不足はスペースで埋め、超過もすべて表示
printf "整数: %d, 浮動小数点: %.2f, 文字列: %s\n" 10 3.14159 "テスト"
エスケープ文字
printfでは以下のエスケープ文字が使用できます:
- \n - 改行
- \t - タブ
- \" - ダブルクォート
- \\ - バックスラッシュ
シェルtestコマンド
testコマンド:条件が真かどうかをチェック
num1=10
num2=20
if test $num1 -eq $num2;
then
echo "2つの数は等しい"
else
echo "2つの数は等しくない"
fi
if test -z $num1;
then
echo "文字列の長さは0"
else
echo "文字列の長さは0ではない"
fi
ファイルテスト
if test -f ./script.sh;
then
echo "ファイルが存在します"
else
echo "ファイルが存在しません"
fi
if test -r ./script.sh;
then
echo "ファイルが存在して読み取り可能です"
else
echo "ファイルが存在しないか、読み取り不可です"
fi
# ディレクトリの存在チェック
if test -d ./documents;
then
echo "ディレクトリが存在します"
else
echo "ディレクトリが存在しません"
fi