shell

シェルスクリプト

変数の設定方法と使い方

variable.sh
#!/bin/sh

# シェル変数をセット
VARIABLE=variable

#シェル編数を使う
echo $VARIABLE
=> variable # 変数に設定された値が出力される

# シェル変数の設定失敗 設定時にスペースがあってはダメ
VARIABLE = space
=> VARIABLE: command not found

#シェル編数を使う
echo $VARIABLE 
=> variable # 変数の再設定がされていないので、variableのまま

echo VARIABLE
=> VARIABLE # 変数呼び出し時には 「$」が必要。付いていないため、そのまま VARIABLEが出力される

クオーテーションの使い分け

復習したのでまとめておく

quote.sh
#!/bin/sh

FOO="date"

# シングル
echo '$FOO'
# => $FOO

# ダブル
echo "$FOO"
# => date

# バッククオート
echo `$FOO`
=> 2018年 2月 2日 金曜日 15時59分57秒 JST
  • シングル
    変数は展開されない

  • ダブル
    変数は展開される

  • バッククオート
    コマンドが解釈される。
    コマンドとして解釈できない場合は、エラーが発生する。
    command not found

ファイルディスクリプタ

  • 0 標準入力
  • 1 標準出力
  • 2 標準エラー

uniqコマンドの結果

sample.txt
sample text a
sample text line3
sample text line2
sample text line3
sample text line4
sample text line5
sample text line7
sample text line6
sample text line7

このテキストに対して uniqを使った時の結果

# 重複を取り除いて表示
cat a.txt | sort | uniq 

sample text a
sample text line2
sample text line3
sample text line4
sample text line5
sample text line6
sample text line7
# 重複している行のみを表示
cat a.txt | sort | uniq -d

sample text line3
sample text line7
# 重複している行以外を表示
cat a.txt | sort | uniq -u

sample text a
sample text line2
sample text line4
sample text line5
sample text line6