コマンドのバージョン一覧を作る


アニメ『ソード・オラトリア(ダンジョンに出会いを求めるのは間違っているだろうか外伝)』

この世界のレベルっていうのは、ロールプレイングゲームのような上がり方をします。レベルは強さの指標にはなるけど、自分よりもレベルが低い相手に負けることもあります。現実に置き換えると、資格試験とか免許とか格付けとかになると思います。オラクルマスターとか医師免許とか大関とか。ソフトウェアも、バージョンが上がることによって、より良いツールになっていく指標になってますね。ただレベルと同じようにバージョンが上だからといって良くなっているとは限らないですね。

今回もバージョン関連です。
前回version.shを実行して作成したlistファイルの行数に、/bin配下のコマンド数と食い違いがありました。

takk@deb8:~/tmp$ . version.sh > list
takk@deb8:~/tmp$ wc -l list
111 list
takk@deb8:~/tmp$ ls /bin | wc -l
152
takk@deb8:~/tmp$ 

そもそもここからダメですね。

listファイルの行数が/binの数と一致するように修正してみます。
以下のように必ずコマンド名を先頭に表示し、成功失敗をTRUE FALSEで表示するように修正しました。

takk@deb8:~/tmp$ cat version.sh
for i in `ls /bin`;do 
$i --version 1>/dev/null 2>&1
if [ $? -eq 0 ];then
	echo $i$'\t'TRUE$'\t'`$i --version 2>&1 | grep '.*[0-9]\.' | head -1`
else
	echo $i$'\t'FALSE
fi
done

実行すると、数は当然一致します。

takk@deb8:~/tmp$ . version.sh > list
takk@deb8:~/tmp$ wc -l list
152 list
takk@deb8:~/tmp$ ls /bin | wc -l
152

このような/binコマンドの一覧ができました。

bash            TRUE            GNU bash, バージョン 4.3.30(1)-release (x86_64-pc-linux-gnu)
bunzip2         TRUE            bzip2, a block-sorting file compressor. Version 1.0.6, 6-Sept-2010.
busybox         FALSE
bzcat           TRUE            bzip2, a block-sorting file compressor. Version 1.0.6, 6-Sept-2010.
bzcmp           FALSE
bzdiff          FALSE
bzegrep         FALSE
bzexe           FALSE
bzfgrep         FALSE
bzgrep          FALSE
bzip2           TRUE            bzip2, a block-sorting file compressor. Version 1.0.6, 6-Sept-2010.
bzip2recover    FALSE
bzless          TRUE            bzip2, a block-sorting file compressor. Version 1.0.6, 6-Sept-2010.
bzmore          TRUE            bzip2, a block-sorting file compressor. Version 1.0.6, 6-Sept-2010.
cat             TRUE            cat (GNU coreutils) 8.23
chacl           FALSE
chgrp           TRUE            chgrp (GNU coreutils) 8.23
chmod           TRUE            chmod (GNU coreutils) 8.23
chown           TRUE            chown (GNU coreutils) 8.23
chvt            FALSE
cp              TRUE            cp (GNU coreutils) 8.23
cpio            TRUE            cpio (GNU cpio) 2.11
dash            FALSE
date            TRUE            date (GNU coreutils) 8.23
dd              TRUE            dd (coreutils) 8.23
df              TRUE            df (GNU coreutils) 8.23
dir             TRUE            dir (GNU coreutils) 8.23
dmesg           TRUE            dmesg from util-linux 2.25.2
dnsdomainname   TRUE            hostname 3.15
domainname      TRUE            hostname 3.15
dumpkeys        TRUE            dumpkeys from kbd 1.15.5
echo            TRUE            
egrep           TRUE            grep (GNU grep) 2.20
false           FALSE
fgconsole       TRUE            fgconsole from kbd 1.15.5
fgrep           TRUE            grep (GNU grep) 2.20
findmnt         TRUE            findmnt from util-linux 2.25.2
fuser           TRUE            fuser (PSmisc) 22.21
fusermount      TRUE            fusermount version: 2.9.3
getfacl         TRUE            getfacl 2.2.52
grep            TRUE            grep (GNU grep) 2.20
gunzip          TRUE            gunzip (gzip) 1.6
gzexe           TRUE            gzexe (gzip) 1.6
gzip            TRUE            gzip 1.6
hostname        TRUE            hostname 3.15
ip              FALSE
journalctl      TRUE            
kbd_mode        FALSE
kill            FALSE
kmod            TRUE            
less            TRUE            
lessecho        TRUE            1.15
lessfile        TRUE            
lesskey         TRUE            
lesspipe        TRUE            
ln              TRUE            ln (GNU coreutils) 8.23
loadkeys        TRUE            loadkeys from kbd 1.15.5
login           FALSE
loginctl        TRUE            
lowntfs-3g      TRUE            lowntfs-3g 2014.2.15AR.2 integrated FUSE 28
ls              TRUE            ls (GNU coreutils) 8.23
lsblk           TRUE            lsblk from util-linux 2.25.2
lsmod           FALSE
machinectl      TRUE            
mkdir           TRUE            mkdir (GNU coreutils) 8.23
mknod           TRUE            mknod (GNU coreutils) 8.23
mktemp          TRUE            mktemp (GNU coreutils) 8.23
more            FALSE
mount           TRUE            mount from util-linux 2.25.2 (libmount 2.25.0: selinux, assert, debug)
mountpoint      FALSE
mt              TRUE            mt (GNU cpio) 2.11
mt-gnu          TRUE            mt (GNU cpio) 2.11
mv              TRUE            mv (GNU coreutils) 8.23
nano            TRUE             GNU nano version 2.2.6 (compiled 16:56:37, Jul 16 2014)
nc              FALSE
nc.traditional  FALSE
netcat          FALSE
netstat         FALSE
nisdomainname   TRUE            hostname 3.15
ntfs-3g         TRUE            ntfs-3g 2014.2.15AR.2 integrated FUSE 28
ntfs-3g.probe   FALSE
ntfs-3g.secaudit                FALSE
ntfs-3g.usermap FALSE
ntfscat         TRUE            ntfscat v2014.2.15AR.2 (libntfs-3g) - Concatenate files and print on the standard output.
ntfscluster     TRUE            ntfscluster v2014.2.15AR.2 (libntfs-3g) - Find the owner of any given sector or cluster.
ntfscmp         FALSE
ntfsfallocate   TRUE            ntfsfallocate v2014.2.15AR.2 (libntfs-3g)
ntfsfix         TRUE            ntfsfix v2014.2.15AR.2
ntfsinfo        TRUE            ntfsinfo v2014.2.15AR.2 (libntfs-3g) - Display information about an NTFS Volume.
ntfsls          FALSE
ntfsmove        FALSE
ntfstruncate    FALSE
ntfswipe        TRUE            ntfswipe v2014.2.15AR.2 (libntfs-3g) - Overwrite the unused space on an NTFS Volume.
open            TRUE            open from kbd 1.15.5
openvt          TRUE            openvt from kbd 1.15.5
pidof           FALSE
ping            FALSE
ping6           FALSE
ps              TRUE            procps-ng version 3.3.9
pwd             FALSE
rbash           TRUE            GNU bash, バージョン 4.3.30(1)-release (x86_64-pc-linux-gnu)
readlink        TRUE            readlink (GNU coreutils) 8.23
rm              TRUE            rm (GNU coreutils) 8.23
rmdir           TRUE            rmdir (GNU coreutils) 8.23
rnano           TRUE             GNU nano version 2.2.6 (compiled 16:56:37, Jul 16 2014)
run-parts       TRUE            Debian run-parts program, version 4.4
sed             TRUE            sed (GNU sed) 4.2.2
setfacl         TRUE            setfacl 2.2.52
setfont         FALSE
setupcon        FALSE
sh              FALSE
sh.distrib      FALSE
sleep           TRUE            sleep (GNU coreutils) 8.23
ss              TRUE            
stty            TRUE            stty (GNU coreutils) 8.23
su              FALSE
sync            TRUE            sync (coreutils) 8.23
systemctl       TRUE            
systemd         TRUE            
systemd-ask-password            FALSE
systemd-escape  FALSE
systemd-inhibit TRUE            
systemd-machine-id-setup        TRUE            
systemd-notify  TRUE            
systemd-tmpfiles                TRUE            
systemd-tty-ask-password-agent  TRUE            
tailf           TRUE            tailf from util-linux 2.25.2
tar             TRUE            tar (GNU tar) 1.27.1
tempfile        TRUE            tempfile 4.4
touch           TRUE            touch (GNU coreutils) 8.23
true            TRUE            
udevadm         TRUE            
ulockmgr_server FALSE
umount          TRUE            umount from util-linux 2.25.2 (libmount 2.25.0: selinux, assert, debug)
uname           TRUE            uname (GNU coreutils) 8.23
uncompress      TRUE            gunzip (gzip) 1.6
unicode_start   TRUE            
vdir            TRUE            vdir (GNU coreutils) 8.23
vmmouse_detect  FALSE
wdctl           TRUE            wdctl from util-linux 2.25.2
which           FALSE
ypdomainname    TRUE            hostname 3.15
zcat            TRUE            zcat (gzip) 1.6
zcmp            TRUE            zcmp (gzip) 1.6
zdiff           TRUE            zdiff (gzip) 1.6
zegrep          TRUE            zgrep (gzip) 1.6
zfgrep          TRUE            zgrep (gzip) 1.6
zforce          TRUE            zforce (gzip) 1.6
zgrep           TRUE            zgrep (gzip) 1.6
zless           TRUE            zless (gzip) 1.6
zmore           TRUE            zmore (gzip) 1.6
znew            TRUE            znew (gzip) 1.6

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA