私はUnix/Linuxシェルスクリプトnewbieです。以下の行を含むスクリプトを見てください。この質問の以下の詳細はあいまいですが、このコードを書いた人は文書を残さず、その後解読しています。誰でも実際に何をしているのかアドバイスできますか?これらのUnix/Linuxのラインは何をしていますか?
特定のコードが2つあります。シェルスクリプトが実行する計算を行うには様々なパラメータを、私が思うに、代表
failure="020o 040a"
success="002[a-d] 003[a-r] 004[a-s] 005[a-u]
:最初は、単にラインpolys.sh
は、内容のテキストファイルですsource polys.sh
です。計算の性質は重要ではないと言われています。なぜなら、目的はスクリプトを実行させることだけだからです。
2番目のコードは以下の通りで、関連する行はStart
とStop
というコメントで区切られています。私が言えることは、$arg1
が空白の場合、$opt1
も空白の場合、$poly
はテキストファイルのパスと名前であり、./search
私はフォルダであると信じています。
if [ $search == "yes" ]
then
# Search stage for squares containing zeros
#
# Start.
output="$outputs/search/"`basename $poly`
./search $opt1 $arg1 < $poly 2>&1 | tee $output
if tail -n1 $output | grep -v "success"
# End.
then
echo "SEARCH FAILURE" >> $output
continue
fi
# Save approximations
#
echo -n "SEARCH SUCCESS " >> $output
cat /tmp/iters >> $output
cp /tmp/zeros $inputs/search/`basename $poly`
else
echo "No search"
fi
が含まれていますその意図は明らかです(前述のバグはないかもしれませんが)。 –
http://shellcheck.netが示すすべてのバグを修正し、残っているものだけに焦点を当てて質問してください。 –
(http://shellcheck.net/も見つからないという問題もありますが、POSIX仕様では '[] 'で' = '文字列比較演算子として;それは明示的に定義されていない' echo -n'をエコーのためのPOSIX仕様に従って記述しておらず、明示的な書式文字列を優先置換とした 'printf'を持っていますが、 *は識別するのが良い場所です)。 –