良玉的博客 点点滴滴,积水成河_良玉的博客_页游、手游linux运维工程师之路

有趣的shell,管道

#!/bin/bash#按回车退出p=1f=75 s=13 r=200 t=0w=$(tput cols) h=$(tput lines)# ab -> idx = a*4 + b# 0: up, 1: right, 2: down, 3: left# 00 means going up   , then going up   -> ┃# 12 means going right, then going down -> ┓sets=(   

阅读全文...

解决shell当while read line 遇到exit 只退出循环,不退出脚本

 #!/bin/bash
while read line
do
        if [ "$line" == "do" ];then
                exit 2
        fi
        echo $line
done<<<"$(cat 1)"
echo aaa

<<<是bash的扩展,叫做here-string
加上双引号就能一次读一行结果

阅读全文...

shell中${ } 的一些特异功能

假设我们定义了一个变量为: 
file=/dir1/dir2/dir3/my.file.txt 
我们可以用 ${ } 分别替换获得不同的值: 
${file#*/}:拿掉第一条 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt 
${file##*/}:拿掉最后一条 / 及其左边的字符串:my.file.txt 

阅读全文...

shell高级编程--文件锁flock

在工业应用中,有些来自于工业设备的文件将会被放到指定的目录下,由于这些文件需要再被重新格式化后才能被更高层的软件进行处理。而此时负责处理的脚本程 序极有可能是多个实例同时运行,因此这些实例之间就需要一定的同步,以避免多个实例同时操作一个文件而造成的数据不匹配等问题的发生。文件锁定命令可以帮 助我们实现这一同步逻辑。
      /> cat > test26.

阅读全文...