- 博客(18)
- 资源 (604)
- 收藏
- 关注
转载 linux sh : 由未实现函数引起bash读取2进制附加数据引起的报错
前言写好的linux安装包管理脚本附加了tar文件. 运行安装包,本来要执行安装管理脚本,可是没运行,直接报错。说2进制附加数据里面有语法错误. 刚写好的脚本100行左右,开始没看出是哪引起的错误。正常情况是,bash见到exit 0就不执行了,也不会去分析后面的附加数据。 后来用屏蔽法,从最小化的实现开始增量的放开代码。发现是有个函数没实现,有一句脚本的变量使用时多了一个双...
2018-02-27 22:46:34 525
转载 linux sh : print color text, show format string have space
前言前2天弄了一个打印彩色文本的bash脚本接口库。 当时觉得很完美。 后来,测试到打印的文本中有空格时,发现打印的不对了。 折腾了一天,将接口库修正了,现在可以打印任意格式的彩色文本了。 修正的过程中,遇到的问题: * 要开启bash增强特性 * 脚本函数fun_a向脚本函数fun_b转发原始的全部参数 * 脚本函数fun_a将参数1修改后向脚本函数...
2018-02-23 11:42:07 297
转载 linux sh : print color text
前言本来要写安装程序的,突然想到,要将安装过程中的信息文本打印的好看点。 在linux脚本中调用printf 或 echo -e 时,可以直接加入显示控制字符,用来显示彩色文本。 如果要大量的显示彩色文本,就需要封装一下,提高可维护性。 搞了一天,封装了一组好用的彩色文本打印接口。将自己需要的各种情况都考虑到了。 只是没有想到需要这么长时间来封装,意外…运行效果...
2018-02-22 00:42:29 487
转载 alg : 3个量杯的问题3
前言有3个量杯,容量分别是8,5,3. 水无限, 目标容器一个。 要求给定一个任意单位水数量,将水通过这3个量杯,输送到目标容器中.实验用C写个小程序来实现,在linux环境中, 将量杯操作打印出来。 在做这个实验时,收获了一个好用的打印宏,可以打印彩色文本.运行效果实现// @file main.cpp#include <s...
2018-02-20 16:32:46 418
转载 alg : 3个量杯的问题2
前言有3个量杯,容积分别是8升,5升,3升,分别记作a8, a5, a3. Q:只有a8是满的,有8升水,没有其他水可用。只用这3个量杯, 使a8, a5中都称量4升水。实验在EA上画上3个量杯,在注释文本上捣鼓了一会, 只得到了1个解.// methoda8 = 8; a5 = 0; a3 = 0;a8 => a5;a8 = 3; a5 = 5; a3 ...
2018-02-20 12:15:09 357
转载 alg : 3个量杯的问题1
前言有3个量杯,容积分别是8升,5升,3升,分别记作a8, a5, a3. Q:水池一个, 水无限量。只用这3个量杯, 使a8, a5中都称量4升水。实验在EA上画上3个量杯,在注释文本上捣鼓了一会,得到2种答案。其中答案2是最优解.A1// method 1a8 = 0; a5 = 0; a3 = 0;a3 = 3;a3 => a8;a8 = 3...
2018-02-20 12:00:19 561
转载 linux sh : get ini config file's section key's value
前言想在linux脚本安装程序中使用配置文件, 用ini格式吧。 先去找找实现,实在不行,就自己写一个挫的实现。 在github上查到一个实现,作者的思路是传进脚本函数一个回调函数,遍历ini时,调用用户传入的回调函数,由调用者去处理遍历的结果,而且那个回调函数名称和要取的key-value有关,这不现实啊。 在原版实现的基础上加了一个函数shini_get_section_...
2018-02-19 23:48:05 343
转载 linux sh : check sh function is exist; multiple line comment;
前言想做linux安装程序,动手时,又想到一个前置任务.想到要将制作安装工程的配置和安装工程本身的配置放到ini中. 换个安装工程时,可以最大限度的重用安装脚本。 查到github上的一个工程,学到了检测脚本函数是否存在的实现。要将实验结果贴到工程中存档,又去查了sh中多行注释的写法。sh中的多行注释,以前没用过。这很实用。实验# !/bin/sh# @f...
2018-02-19 19:07:18 315
转载 linux sh : get os info, gcc version, glibc version
前言学了一个星期脚本编程,该写安装程序了。 还有点前置任务要做。安装时,假设编译了几个不同版本的目标程序集合,e.g. 32bits, 64bits; redhat or debian; gcc have or not; glibc version depend.安装时,要判断依赖条件是否满足,安装包内是否有适合的目标程序集合可以安装。 这就要先得到当前linux系统的信息...
2018-02-18 20:10:57 489
转载 linux sh : bashdb的安装和初步使用
前言这周在学习linux脚本编程,调试时,用echo 或bash -x 检查语法用bash -n x.sh在函数中,要用echo返回出参字符串,如果再用echo打印调试信息,将逻辑搞乱了。 当时就在想,linux工具这么强大,既然有gdb, 那就有脚本的调试器才对啊.今天在看书时,看到了bashdb这个工具。 在debian下试过了,好使。 虽然没有gdb -...
2018-02-18 00:48:49 3853
转载 linux sh : sed and awk's basic usage
前言对字符串使用sed和awk,做了初步的实验。 实验目的,使参数可作为变量传递。实验# !/bin/bash# @file sh.test_case# @brief test function for other shell script. ../common/sh.const_definefunction func_test_sed() { # ...
2018-02-17 11:44:12 240
转载 linux sh : use local shell script library
前言上一个实验,工程是一个500行的脚本。 已经感到维护性不好了。 假设工程的功能增加了,代码量增加到几千行以上,如何改善脚本工程的可维护性呢? 看了段书,说到可以采用引入本地脚本库。相当于c语言中的include头文件。 使用库包含后,做其他工程时,就有可以重用的代码库了。重构了一下,按照功能和逻辑,将主脚本中的代码下拉到脚本库中,改造完成后,看着清爽多了。实...
2018-02-14 11:25:20 407
转载 linux sh : user array as function's input or output parameter
前言看了一段书,讲到了用数组作为脚本函数的入参和出参,正好是我有需求的地方。前面做的实验,暂时不知道怎么传出多个参数,就每个函数配发了专用的全局变量(有几个出参就配发函数专用的几个全局变量),这样写维护不方便,丑陋。将前面的一个实验(功能是全的),将全局变量换成数组。 搞了2天,细节蛮多,改的不对,结果不对了。调试了很久。可以用bash -x my.sh, 来调试,也不方便。还是要将基...
2018-02-13 17:05:49 254
转载 linux sh : read user input
前言看了一段书,将脚本中读取用户输入的实现封装了几个函数。 重定向的写法# redirect output to file use : 1> log_file # redirect error to file use : 2> log_file # cmd param 1> /home/dev/run_result.txt 2> /home/d...
2018-02-12 14:06:18 1052
转载 linux shell script : check user exist
前言要写一个linux安装程序, 发现细节写的不自如. 边写边查, 实在受不了, 效率太低了. 还是要系统的看看书. 达到写脚本的时候, 只关注逻辑, 而不用关心语法, 这才到位. 看了一段书, 练习一下, 知识点如下: * 宏的定义和使用 * 数学表达式的用法 * 函数的控制 : 入参个数, 入参取值, 出参赋值, 函数返回值. * 数值的比较, 字...
2018-02-11 19:02:17 558
转载 delete and delete[] on oop
前言前段时间,在工程中用delete[]删除单个对象指针,引起崩溃。被同事找出来了。 我一直以为工程中的那个类发生了越界,引起的崩溃, 而不是因为delete[]引起的崩溃. 在忙别的,没深究。 今天想起这事,做个实验(linux and windows),果然单个对象指针,只能用delete来删除,否则崩溃。 以前没注意过这个点 :)实验// @fil...
2018-02-09 17:03:31 359
原创 debian7, debian8‘s syslog config, open all log level
前言在测试环境下(debian7 or debian8)中,发现写好的程序中,日志打印级别为INFO的日志能打印出来,警告和错误级别打不出来。 这时,要去将源码中所有日志都改成INFO级别,那就和测试环境中的测试程序不一样了。最好是将debian的syslog日志级别全部打开。以前也尝试配制过syslog, 没搞懂。 今天尝试成功了,可以用tail -f /var/log/messa
2018-02-07 11:32:56 1133
转载 make linux installer
前言在cm中,看到人家用cat命令合并.sh + .tar,做成可以独立运行的linux安装包,挺巧的。 回来查了资料,找到了出处. 做个实验,以后自己也能做linux安装程序了。 照着人家写好的脚本改,感觉一个乱。还是自己做一遍体会深刻。自己搞一遍,再做linux安装程序,就不会写的凌乱,而是很有条理。 头一次玩,整了好长时间。用这种方法做安装包,就是有点麻烦。因
2018-02-06 04:23:26 362
pcasm-book-simplified-chinese.zip
2014-05-09
Advanced-Windows-Debugging-sources-awd.zip
2014-04-28
TrueCrypt 7.1a Source.zip
2013-11-01
filedisk-17-org.zip
2013-10-31
Sysinternals_Source.zip
2013-09-16
vs2010_Sample_C_plus_plus.zip
2013-08-08
DebugViewV4_81.zip
2013-03-13
srcSpyxx.zip
2012-09-30
ProcessExplorer
2011-11-05
cppunit-1.12.1.tar.gz
2011-08-30
STLport-5.2.1.tar.bz2
2011-08-20
工程目录结构模板设计_2011_0309_2054
2011-03-10
ResourceHack
2010-11-26
NTFS文件系统扇区存储探秘_电子书和随书光盘.7z
2019-03-18
Linux C程序设计王者归来_book_cd.7z.004
2018-08-22
Linux C程序设计王者归来_book_cd.7z.003
2018-08-22
Linux C程序设计王者归来_book_cd.7z.002
2018-08-21
Linux C程序设计王者归来_book_cd.7z.001
2018-08-21
eclipse-java-mars-2-win32-x86_64.zip
2017-04-21
International standard ISO/IEC C++98
2015-12-25
book code C语言名题精选百则
2015-12-16
depends22_x64.zip
2015-07-26
C++_Templates_The_Complete_Guide_book_code.zip
2015-06-14
quicktimesdk 7.3.0.70 for windows
2015-05-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人