
#!/bin/sh
if [ $# -ne 8 ]; then
echo "Usage: sh `basename $0` YYYYMMDD hour min masterid account destination filename forward|backward";
exit 1;
fi
day=${1}
hour=${2}
min=${3}
masterid=${4}
account=${5}
destination=${6}
file=${7}
if [ "${8}" == "backward" ]; then
backward="true";
fi
if [ "${backward}" != "true" ]; then
awk -v day=${day} -v hour=${hour} -v min=${min} -v masterid=${masterid} -v account=${account} -v destination=${destination} -f /var/tmp/selfCross.awk /koba/c/dumper/${file}
else
tac "/koba/c/dumper/${file}" | awk -v day=${day} -v hour=${hour} -v min=${min} -v masterid=${masterid} -v account=${account} -v destination=${destination} -f /var/tmp/selfCross.awk
fi
逆さまなら! = true、正常に動作します。しかし、何らかの理由でtacが機能しないのですが、どうすればよいですか?すぐに返されます。上記のスクリプトで私が何を間違っているのでしょうか?
答え1
答えではありませんが、ヒント:文字列の同一性をテストする代わりに、「true」および「false」コマンドを使用してください。
backwards=false
if [[ some condition ]]; then backwards=true; fi
if $backwards; then
do something
else
do something else
fi