Home > 软件世界 > 假古文的shell实现方式

假古文的shell实现方式

July 15th, 2008

假古文大家都不陌生了,实现方式也很多很多,什么在线版本地版都有了。不过今天说的这个方法恐怕不是很多人知道,这是在Linux的bash下用一段脚本实现的。

方法很简单,代码如下:

#!/bin/bash

str=”$*”
row=10
num=$((`echo “$str” | wc -m`-1))
col=$(($num/$row+1))
dmr=$((row-$num%$row))

m=1
n=0
while [ $m -le $col ]; do
arr[m]=`echo ${str:$n:$row} | sed -e ’s/ / /g’ -e ’s/./&│/g’`
let m=m+1
let n=n+row
done

while [ $dmr -gt 0 ]; do
arr[$col]=”`echo ${arr[$col]} | sed ’s/$/ │/’`”
let dmr=$dmr-1
done

for ((i=0;i<=$row*2;i=i+2)) do
echo
for ((j=m;j>=1;j–)) do
echo -n ${arr[j]:i:2}
done
done

愿意用vi在shell里面直接写也行,用记事本写好传上服务器也行,后缀是.sh,假设存成j.sh吧,然后在文件所在目录下输入:

chmod 777 j.sh  //这是让这个文件可以执行

./j.sh  一段文字

效果:

有│四│当│筹│传│未│海│
莫│纪│时│。│宵│卜│外│
愁│为│七│此│柝│此│徒│
。│天│夕│日│,│生│闻│
   │子│笑│六│无│休│更│
   │,│牵│军│复│。│九│
   │不│牛│同│鸡│空│州│
   │及│。│驻│人│闻│,│
   │卢│如│马│报│虎│他│
   │家│何│,│晓│旅│生│

注意如果系统不支持中文的话,就不行了。

,

  1. July 15th, 2008 at 13:41 | #1

    可以的,假古文已经发展到一个境界了。很强大!

    老N的最新blog文章:关闭wordpress2.6的文章版本功能

  2. July 15th, 2008 at 14:12 | #2

    最近貌似流行这个,楼主原来还会linux,强!

    一亿度的最新blog文章:第一次有美女投怀送抱

  3. July 15th, 2008 at 14:31 | #3

    唉…别太发达了 会被盯上的

  4. July 15th, 2008 at 17:25 | #4

    同意楼上的,我们好可怜。。。

    diciti的最新blog文章:足不出户以三维视角浏览故宫!

  5. 77880099
    July 18th, 2008 at 15:58 | #5

    呵呵 纯技术探讨

  6. blacktulip
    July 15th, 2008 at 14:32 | #6

    俺也是转的..

  1. No trackbacks yet.

Additional comments powered by BackType