-
シェルスクリプトの先頭に書く #!/bin/bash の意味は?
このスクリプトを Bash で実行する ことを指定する行(シバン)
-
変数 name に "Linux" を代入し、表示するコマンドは?
name="Linux" echo $name
-
シェルスクリプト hello.sh を実行するコマンドは?
bash hello.sh
-
実行権限を与えて hello.sh を直接実行できるようにするコマンドは?
chmod +x hello.sh
-
read コマンドを使ってユーザー入力を変数に格納する方法を示せ。
read name echo "Hello $name"
-
引数 $1 と $2 を受け取って表示するスクリプトを書け。
echo "First: $1" echo "Second: $2"
-
すべての引数を表示する変数は?
$@
-
引数の数を表す特殊変数は?
$#
-
ファイル script.sh 内で現在のプロセスIDを表示するコマンドは?
echo $$
-
環境変数 HOME を表示するコマンドは?
echo $HOME
-
if [ -f file.txt ] の意味は?
file.txt が存在し、通常ファイルであるかを判定する
-
if [ -d dir1 ] の意味は?
dir1 が存在し、ディレクトリであるかを判定する
-
ファイル file.txt が存在しない場合のみ "Not found" を表示する if 文を書け。
if [ ! -f file.txt ]; then echo "Not found" fi
-
for 文で 1〜5 を表示するスクリプトを書け。
for i in 1 2 3 4 5 do echo $i done
-
for 文で 1〜10 を順番に表示するスクリプトを書け。
for i in {1..10} do echo $i done
-
while 文で 1〜5 を表示するスクリプトを書け。
i=1 while [ $i -le 5 ] do echo $i i=$((i+1)) done
-
case 文を使って "y" なら Yes、 "n" なら No を表示するスクリプトを書け。
read answer case $answer in y) echo "Yes" ;; n) echo "No" ;; *) echo "Other" ;; esac
-
関数 greet を定義して "Hello" を表示するスクリプトを書け。
greet() { echo "Hello" } greet
-
関数に引数を渡して "Hello NAME" を表示するスクリプトを書け。
greet() { echo "Hello $1" } greet Linux
-
コマンドの実行結果を変数 today に代入して表示するスクリプトを書け。
today=$(date) echo $today
-
ファイル data.txt の行数を変数 count に格納して表示するスクリプトを書け。
count=$(wc -l < data.txt) echo $count
-
&& と || の違いを説明せよ。
&& → 前のコマンドが成功した場合に次を実行 || → 前のコマンドが失敗した場合に次を実行
-
set -e をスクリプトに書くとどうなるか?
エラーが発生した時点でスクリプトを終了する
-
exit 0 と exit 1 の違いを説明せよ。
exit 0 → 正常終了 exit 1 → エラー終了
-
ファイル input.txt を1行ずつ読み込んで表示するスクリプトを書け。
while read line do echo $line done < input.txt
-
コマンド置換 $(...) とバッククォート `...` の違いは?
両方とも同じだが、$(...) の方が可読性が高く、入れ子が可能
-
スクリプト内でデバッグモードを有効にするオプションは?
set -x
-
配列 arr=(a b c) の要素をすべて表示するコマンドは?
echo ${arr[@]}
-
配列の要素数を表示するコマンドは?
echo ${#arr[@]}
-
スクリプトにコメントを入れる方法は?
# コメント
-
サブシェルを使って (cd dir && ls) を実行したときの挙動を説明せよ。
dir に移動して ls を実行するが、元のシェルのカレントディレクトリは変わらない
-
コマンドライン引数が0個の場合 "Usage: script.sh arg" を表示して終了するスクリプトを書け。
if [ $# -eq 0 ]; then echo "Usage: $0 arg" exit 1 fi
-
trap コマンドで Ctrl+C を無効化するスクリプトを書け。
trap "" INT while true; do echo "Running..." sleep 1 done
-
trap コマンドで終了時に "Goodbye" を表示するスクリプトを書け。
trap "echo Goodbye" EXIT
-
バックグラウンドで sleep 60 を実行し、ジョブ番号を確認するコマンドは?
sleep 60 & jobs
-
バックグラウンドジョブをフォアグラウンドに戻すコマンドは?
fg
-
バックグラウンドジョブを停止するコマンドは?
kill %1
-
1秒ごとに "Hello" を表示する無限ループを書け。
while true do echo "Hello" sleep 1 done
-
seq 1 5 の結果を for 文で使い、1〜5を表示するスクリプトを書け。
for i in $(seq 1 5) do echo $i done
-
test -z "$var" の意味は?
変数 var が空かどうかを判定する
-