※こちらは旧サイトです(新サイトはこちら)
`return`ではなく`echo`を使う
function hoge(){
message=${1}
echo ${message}
}
output=`hoge "konnnichi world"`
echo $output
// 出力
konnnichi world
str="aaa"
# 普通のif文
if [ ${str} = "bbb" ]; then
echo "1:TRUE"
else
echo "1:FALSE"
fi
# not
if [ ! ${str} = "bbb" ]; then
echo "2:TRUE"
else
echo "2:FALSE"
fi
# 条件の連結
if [ ! ${str} = "bbb" ] && [ ! ${str} = "ccc" ]; then
echo "3:TRUE"
else
echo "3:FALSE"
fi
# 変数が空の状態をとる場合は"[[ ]]"で囲む ※「単項演算子が予期されます」のエラー回避
str2=""
if [[ ${str2} = "" ]]; then
echo "4:TRUE"
else
echo "4:FALSE"
fi
if [[ ! ${str2} = "" ]] && [[ ! ${str2} = "" ]]; then
echo "5:TRUE"
else
echo "5:FALSE"
fi
// 出力
1:FALSE
2:TRUE
3:TRUE
4:TRUE
5:FALSE
csv="aaa,bbb,ccc"
# cut -d [デリミタ] -f [フィールド番号]
echo $csv | cut -d , -f 1
echo $csv | cut -d , -f 2
echo $csv | cut -d , -f 2-3
// 出力
aaa
bbb
bbb,ccc
csv="aaa,bbb,ccc"
# tr -s [from] [to]
ary=(`echo $csv | tr -s ',' ' '`)
for i in ${ary[@]}; do
echo $i
done
// 出力
aaa
bbb
ccc
function highlight(){
csv=${1}
pattern=`echo $csv | tr -s ',' '|'`
txt=`cat ${2} | perl -pe "s/(${pattern})/\e[1;31m$&\e[0m/g"`
echo -en "${txt}"
}
// 使い方(highlight [カンマ区切りでハイライトキーワード] [対象ファイルのPATH])
highlight aaa,ccc hoge.txt
// 出力
aaabbbcccdddeee
$ wget -N ftp://hogehoge.com/path/to/hoge.gz
# 出力先のパス
OUTDIR=/path/to/outdir
# 返り値は「-N」の有無にかかわらず「0」なので、タイムスタンプは自前で取る
BF=`date +%y%m%d%H%M%S -r ${OUTDIR}/hoge.gz`
wget -N -P ${OUTDIR} ftp://hogehoge.com/path/to/hoge.gz
AF=`date +%y%m%d%H%M%S -r ${OUTDIR}/hoge.gz`
if [[ ${BF} < ${AF} ]]; then
echo " ---> ダウンロード前後で変更がありました"
else
echo " ---> ダウンロード前後で変更がありません"
fi