スペースの有無でエラーになったりするので注意 たとえば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'