スペースの有無でエラーになったりするので注意 たとえばif文は
if [ $# -ne 2 ]; then
if [ $# -ne 2]; then
$ARG1=${1:-hoge}
引数は順番に$1,$2,$3・・・・と取得できる
echo $1
VARIABLE_ARGS=${@:4}
# nullだったら実施するパターン if [ ! $1 ]; then echo "PLEASE INPUT ARGUMENTS!" fi;
if [ $# -ne 2 ]; then
echo "利用方法 $0 引数1 引数2"
exit
fi
${#変数名}
for FILE in a b c
do
echo ${FILE}
done
TARGET_FILES=`ls *`
for FILE in ${TARGET_FILES}
do
echo ${FILE}
done
while read x; do echo $x done < $1
for filename in `cat ファイル名`
do
echo $filename
done
while read line ; do
echo ${line}
done < ファイル名
if [ -f $RESULT ]; then echo "TRUE" else echo "FALSE" fi;
if [ -f $RESULT ]; then echo "TRUE" elif [ 条件 ]; then echo "FALSE" else echo "FALSE" fi;
if [ $STR = "比較対象" ]; then
if [ -f $RESULT ]; then PRE_RESULT=`cat $RESULT` fi;
if [ ! -f $RESULT ]; then
PRE_RESULT=`cat $RESULT`
fi;
if [ -z "${WEBAPPS}" ]; then
echo "変数が空です"
fi
if [ ! -d "/var/tmp" ]; then echo "/var/tmp does not exist!" return fi
if [ ! -d "/var/tmp" -o ! -d "/var/tmp2" ]; then echo "/var/tmp or /var/tmp2 do not exist!" return 1 fi
#!/bin/bash
# read key input from stdin
read key
# do command
case "$key" in
"1" ) echo "statement1"
echo "statement2";;
"2" ) echo "end sign is ;;";;
*) echo "一致するものがないときはここ"
break ;;
esac
ls hoge if [ $? -ne 0 ]; then echo "ERROR!!" exit fi;
# 引数は$1,$2でつかえる。呼び出し前に定義しておく必要がある。
doCheck() {
echo $1
}
# 呼び出しは関数名と引数をスペース区切りで
doCheck hogehogehoge fugafuga
source ./function.sh
#!/bin/sh
SRC_DIR=$1
DST_DIR=$2
LIST=$3
if [ -z "$1" -o -z "$2" -o -z "$3" ]; then
echo "コピー元、コピー先、ファイル名の引数のいずれかが空です。"
exit 1
fi
while read line ; do
DIR_NAME=`dirname ${line}`
if [ ! -e "${DST_DIR}${DIR_NAME}" ]; then
mkdir -p ${DST_DIR}${DIR_NAME}
fi
FILE_NAME=`filename ${line}`
echo cp ${SRC_DIR}${line} ${DST_DIR}${line}
done < ${LIST}
SUFFIX=` date '+%Y%m%d%H%M%S'`
echo "TEST" > hoge_${SUFFIX}
date '+%Y-%m-%d %H:%M:%S'