bash
私はスクリプトを書いただけで好きなように動作します。スクリプトは次のとおりです。
#!/usr/bin/env bash
DY=`date +%Y%m%d`
gunzip -c /var/log/cisco/cisco.log-$DY.gz > file.log
sleep 3
cat file.log | grep "Virtual device ath0 asks to queue packet" > file2.log
awk '{print $4}' file2.log > IP.log
sort IP.log | uniq > devices.log
wc -l devices.log
rm file.log file2.log IP.log devices.log
しかし、私はこれに慣れていないので、bash
そのようなスクリプトを実行するより良い方法があるかどうかを尋ねています(まだbash
環境にあります)。どんな説明でも私の学習を改善するのに非常に便利です。
ベストアンサー1
- コメント付きのタイトルを使用して、スクリプトの機能と使用方法を説明します。
/bin/sh
移植性のためにPOSIXシェル()を使用してください。bash
通常、単純なスクリプトには必要ありません。- ハードコードされた文字列の代わりに変数を使用してください。
$(some_command)
逆引用符の代わりに構文の使用を検討してください。cat
入力しないでgrep
使用してください。grep <pattern> <file>
- なぜ眠る?
- ファイルが必要ない場合は、一時変数を削除し、代わりにパイプを使用してください。
sort | uniq
に取り替えることができるsort -u
- 一時ファイルを使用する必要がある場合は、次の点を考慮してください。正しく清掃してください。