
shell
tiantao2012
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
shell bashdb debug
我是ubuntu的系统首先通过sudo apt install bashdb 按照bashdb然后通过sudo bashdb --debug sh2 来调试sh2 这个shell脚本下面是实际运行的结果tao@tao-ThinkCentre-M8600t-N000:~$ sudo bashdb --debug sh2bash debugger, bashdb, release原创 2017-02-22 08:45:22 · 1287 阅读 · 0 评论 -
使用tr加解密的ROT13 算法实践
ROT13 算法的加密和解密用的是一组key,具体测试如下图所以,可见感叹号没有没加盟,只是对字符加密,数字应该也不会加密原创 2017-05-19 10:38:27 · 1726 阅读 · 0 评论 -
通过工具让正则表达式图形化
在这个网址输入正则表达式https://regexper.com/,你就能看到正则表达式按照图形化的话的形式显示出来.通俗易懂.原创 2017-05-20 14:30:32 · 1222 阅读 · 0 评论 -
shell 计算
c语言风格,注意是两个((我这边测试expr是failed可以用bc实现浮点运算一般如果不是浮点运算的话,建议使用第一种,简单明了原创 2017-06-09 11:32:27 · 561 阅读 · 0 评论 -
50以内奇数的和
#!/bin/shfirst=0sum=0while [ $first -le 50 ];do [[ $(($first%2)) != 0 ]] && sum=$((sum + first)) first=$((first+1))doneecho "sum=$sum"sum=0for x in $(seq 1 2 50);do原创 2017-06-09 17:28:50 · 3452 阅读 · 0 评论 -
awk
awk 语法简单,其if/for/while 等用法都和c一样.结果:原创 2017-06-15 14:47:11 · 464 阅读 · 0 评论 -
shell数组
可以同直接赋值的方式初始化数组tao@tao-ThinkCentre-M8600t-N000:~$ array=(1 2 3 4)tao@tao-ThinkCentre-M8600t-N000:~$ echo $array1可见$array 代表数值第一个元素打印数组下表为2的元素,数组是从0开始的tao@tao-ThinkCentre-M8600t-N000:原创 2017-06-15 15:02:26 · 448 阅读 · 0 评论 -
shell 的expect实践
#!/usr/bin/expect -f set timeout 30 set host "192.168.2.195"set username "root"spawn ssh $username@$hostexpect { "(yes/no)?" { send "yes\r" ; exp_continue } "password:" {原创 2017-08-10 14:28:45 · 2319 阅读 · 0 评论 -
在shell中插入expect命令。
#!/bin/bashn=0while :do n=$((n+1)) echo "test count=" $n expect << __EOF set timeout 30 spawn ssh root@192.168.2.195 expect { "(yes原创 2017-10-19 17:22:02 · 9824 阅读 · 4 评论 -
utils/config.sh
#!/bin/bash# 通过echo 打印logecho "Begin configure build enviroment."#如果在根目录下不存在rpmmacros的话,则通过wget下载。这里的-O ~/ 表示将下载的文件保存到~/ 这个目录下#可以这里用-O其实有一点优化,如果不用-O的话,则需要cp/mv 将下载到当前目录的rpmmacros copy到对应的目录下面if [原创 2017-12-13 14:24:42 · 687 阅读 · 0 评论 -
utils/createrepo.sh
#!/bin/bash#通过dirname $0得到$0的决定地址,然后cd 到这个地址,执行pwd。将这个结果返回给CUR_DIR 得到当前路径CUR_DIR=$(cd `dirname $0`; pwd)VERSION="5.0"#如果输入的参数等于2 说明有给VERSION 这个参数赋值,这样就可以覆盖默认的值"5.0"if [ $# -eq 2 ];then V原创 2017-12-15 10:20:51 · 405 阅读 · 0 评论 -
通过shell检查usb总线下的所有设备
examine_all_usb_devices() { USB_BUS="/dev/bus/usb/" if [ -d "${USB_BUS}" ]; then # shellcheck disable=SC2045 for bus in $(ls "${USB_BUS}"); do for device in $(ls "${US原创 2017-05-10 17:17:26 · 5898 阅读 · 0 评论 -
parse shell传递的参数
一般我们通过下面的方式调用disk-partitioning.sh的时候,可以通过-d/-l等制定参数./disk-partitioning.sh -d "${DEVICE}" -l "${DISKLABEL}" -f "${FILESYSTEM}" -s "${SKIP_INSTALL}"对这样参数的解析可以参考下面这段。while getopts "d:l:f:r:s:" o;原创 2017-05-09 17:10:15 · 1479 阅读 · 0 评论 -
添加当前路径到PATH中
如果你在当前路径下有一个shell脚本例如sh2.sh 这样每次需要通过./sh2.sh 或者 sh sh2.sh 来执行。通过下面的命令可以将当前路径临时加到环境变量中,然后直接sh2.sh就可以执行了,因为bash可以找到这个shell的路径了ADD_PATH="$(pwd)" PATH="${ADD_PATH}:${PATH}"export PATH原创 2017-02-25 16:42:17 · 8371 阅读 · 0 评论 -
自动安装pkg的依赖包
当我们要按照一个pkg时,可能有几个依赖的包需要安装,用下面这个脚本可以将pkg要依赖的包自动安装上。其用法如下:pkgs="parted"install_deps "${pkgs}"在install_deps 中支持Debian|Ubuntu/CentOS/Fedora 这五个os,我们以centos为例安装依赖的包,起始就是给yum加上-e 0的参数即可. instal原创 2017-03-13 11:44:34 · 2914 阅读 · 0 评论 -
shell seq 命令测试
好像有的shell 版本不支持通过a=‘seq 1 5’ 这样的赋值,测试如下:原创 2017-05-12 10:55:15 · 887 阅读 · 0 评论 -
openssl speed md5 测试md5的performance
通过openssl speed md5 测试md5的performance将测试产生的这些log都存在文件中 openssl speed md5 2>&1|grep "Doing md5">test.txt通过2>&1 可以将输出的log 都输出到text.txt中,并过滤Doing md5因此test.txt 中的log如下:通过awk可以从test.txt 中pa原创 2017-05-12 11:48:43 · 1631 阅读 · 0 评论 -
通过cat 命令显示字符画
首先做一个字符画保存在test文件中然后通过cat test 命令就可以显示出来原创 2017-05-04 17:25:25 · 1932 阅读 · 0 评论 -
shell 流程控制语句测试
1:if else测试结果:2:for结果:可见只有第一种for循环是对的原创 2017-05-25 15:59:41 · 603 阅读 · 0 评论 -
dd命令测试
ITERATION="2"dd_write() { echo echo "--- dd write speed test ---" rm -f dd-write-output.txt for i in $(seq "${ITERATION}"); do echo "Running iteration ${i}..."原创 2017-05-15 16:07:47 · 3602 阅读 · 0 评论 -
改变echo 输出的颜色
echo -e \e[1; 和 \e[0m 配对,表示打开和关闭对echo的设定。\e[1;number.这个number可以随意,下面是一些测试,可见40开都的都是背景颜色,而30开始的是改变字体的颜色.测试如下:原创 2017-05-17 15:30:05 · 1855 阅读 · 0 评论 -
shell 判断是否支持devicetree
通过判断是否包含这个/sys/firmware/devicetree/base/ 路径来判断当前系统是否支持devicetree通过zcat /proc/config.gz 可以将当前系统用的config文件解压缩,然后用grep查找是否enable 某个config。通过=就可以判断字符串是否相等,通过&& 实现与运算。最后的输出结果可以通过echo $? 来输出,如果是0的原创 2017-05-09 11:51:51 · 713 阅读 · 0 评论 -
通过date测试shell 命令执行占用的时间
首先通过echo $SHELL 查看当前系统用的shell。然后编写测试脚本。可以看到结果输出程序执行用了5s。源码如下:#!/bin/bashstarttime=$(date +%s)sleep 5endtime=$(date +%s)cost=$((endtime - starttime))echo $cos原创 2017-05-18 11:36:51 · 4907 阅读 · 0 评论 -
没有loop 设备
在docker中mount iso时有时会提示找不到loop设备,通过下面的code 可以自检loop设备 seq 0 7 | xargs -I {} mknod -m 660 /dev/loop{} b 7 {} || true chgrp disk /dev/loop[0-7]通过下面的code 可以将iso中的内容copydao另外一个文件中tar cf - . | (...原创 2018-09-06 15:40:21 · 2258 阅读 · 0 评论