
S1: Shell
涛歌依旧
毕业后就职于华为和腾讯
展开
-
linux shell scrip(脚本)编程简介------变量、特殊符号和表达式
一些朋友从事linux相关的维护工作, 这自然需要会搞shell scipt编程。另外一些朋友从事linux相关的测试工作,经常涉及到一些自动化测试的东西, 当然需要会点shell scrip编程啊。 还有很多朋友从事linux相关的开发工作, 那么, 我要说, 不会shell script, 那是不合格的, 尽管有很多程序员跟我说: 我只要看得懂即可, 会不会写没有关系。原创 2015-05-09 15:36:21 · 9082 阅读 · 1 评论 -
linux/ubuntu下shell script的 [: xxx: unexpected operator 之坑
紧急修复一个问题,需要改shell script, 简单描述如下:#! /bin/bashx="hello"if [ "${x}" == "hello" ]; then echo "yes"fi 在ubuntu下执行./a.sh是OK的, 但执行sh a.sh有问题(mac下没有问题),真是怪事。由于紧急,我把==改为=,就可以了。 事...原创 2018-10-19 20:41:19 · 7278 阅读 · 2 评论 -
linux shell中./a.sh , sh a.sh , source a.sh, . ./a.sh的区别
在linux shell中, 执行shell script的方式有多种, 有什么区别呢? 实际上我之前说过, 现在用一个简单例子再来说下。 a.sh的内容是:#! /bin/bashecho hello worldecho "PID of this script: $$"echo "PPID of this script: $PPID" 看下...原创 2018-10-13 08:58:18 · 165531 阅读 · 10 评论 -
用shell脚本来给mysql加索引
刚好用到, mark一下:#! /bin/bashtb_base=tb_student_arr=("0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "a" "b" "c" "d" "e" "f")GetCmd(){ for value in ${arr[@]} do for value2 in ${arr[@]} do tb_na原创 2018-01-15 23:43:53 · 7315 阅读 · 2 评论 -
shell script中的 ${a}和$a有什么区别?
最近碰到这个问题, 差点踩坑, 来记录一下, 看看:#!/bin/bashecho $9 $10echo $9 ${10} 看一下执行结果:原创 2017-10-25 21:36:18 · 15845 阅读 · 0 评论 -
用linux shell逐行读取文本文件内容
遇到了, 记录一下, 比写代码好多了:ubuntu@VM-0-13-ubuntu:~$ cat a.txtgaga agagagagaga agagd xxxagadaa agaoo yyy zzzzubuntu@VM-0-13-ubuntu:~$ ubuntu@VM-0-13-ubuntu:~$ ubuntu@VM-0-13-ubuntu:~$ cat a.s原创 2017-12-05 20:03:05 · 26801 阅读 · 8 评论 -
shell script脚本传参小结
简单东西, 记录一下:#!/bin/bashif [ $# -ne 1 ]; # 参数个数判断then echo "error, usage: $0 20171025" exit 1;fit1=$(date -d $1 +%s) # 时间戳echo $t1 执行:xxxxxx ./a.sh error, usage: ./a.sh 201710原创 2017-10-25 22:09:10 · 7588 阅读 · 0 评论 -
shell script循环遍历字符串数组
遇到了, 记一下, 简单东西, 我只能说, shell script语法真TM奇葩和难记:#!/bin/basharr=("0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "a" "b" "c" "e" "e" "f") for value in ${arr[@]}do echo $valuedone# 或者采取如下方式echo "----原创 2017-10-25 17:00:47 · 29579 阅读 · 2 评论 -
linux shell中“=”左右不能有空格, 晕不晕
linux shell中“=”左右不能有空格, 晕不晕#!/bin/bashcmd ="1"echo $cmd error 需要把cmd左右的空格去掉。 呵呵哒。原创 2017-09-03 15:23:59 · 8356 阅读 · 1 评论 -
用shell来发tcp包
经常用tcpdump抓包来倒腾和学习, 但怎么触发tcp包呢? 写一个客户端程序, 然后朝server上发包, 肯定可以, 但还有更简单的方法:exec 8<>/dev/tcp/10.100.70.139/19006echo -e "stats" >&8 用tcpdump抓包的结果为:xxxxxx$ sudo tcpdump -iany port 19006 -Xnlp原创 2017-06-28 00:02:49 · 13662 阅读 · 1 评论 -
linux shell对应的配置文件是怎么被执行的呢?-----聊聊/etc/profile, ~/.bash_profile, ~/.bashrc等配置文件的执行流程
本文来聊聊linux中的/etc/profile, ~/.bash_profile, ~/.bashrc等配置文件。首先, 我们来说一下login shell和non-login shell的概念: login shell : 需要密码来登录的, 则为login shell, 比如你每次用SecureCRT来登录的shell。 要说明的是, SecureCRT可以存放密码, 所以即使你省略了输入这个输入密码的过程, 那还是login shell. 或者你在SecureCRT中clone一个se原创 2015-11-29 11:37:47 · 9675 阅读 · 1 评论 -
验证linux shell在启动时会自动执行用户主目录下的.bashrc脚本
在本文中, 我们来一起验证linux shell在启动时会自动执行用户主目录下的.bashrc脚本(注意是.bashrc而不是bashrc)。 如果你的主目录下没有.bashrc, 那也不要担心,自己建立一个就行了哈。 实验一: 创建一个.bashrc文件(如果有, 那就不用创建, vim打开即可), 然后在其中加入一行, 如下:#原创 2015-10-10 22:45:15 · 14394 阅读 · 2 评论 -
linux shell script中的函数简介
懂C语言的人, 没有不知道函数的, 下面我们来看看linux shell script中的函数, 其实也很简单:[taoge@localhost learn_shell]$ lsa.sh[taoge@localhost learn_shell]$ cat a.sh #! /bin/bashfun(){ echo "calling fun"}echo "begin ---"原创 2015-05-16 17:46:45 · 8689 阅读 · 1 评论 -
定制一个相对安全的linux命令------delete (代替rm)
在linux下, 用rm是比较危险的, 删除了的文件不会放到所谓的回收站中, 有很多因rm而“一失足成一天恨”的例子, 下面, 我们考虑来定制一个delete命令, 并模拟做一个回收站, 这样, 即使delete文件/目录, 也会放在自建的回收站中, 相对比较安全。 用shell script来实现, delete文本文件的内容为:#! /bin/bash#原创 2015-05-10 13:23:23 · 13095 阅读 · 1 评论 -
linux shell script程序之循环结构简介
在本文中, 我们来看看linux shell script的循环结构, 还是那句话, shell script虽然简单, 但一不小心就会出错, 比如, 我写出了如下的一个错误脚本:#! /bin/bashread ni=1sum=0while [ $i -le $n ]do $sum=$[ $sum + $i ] $i=$[ $i + 1 ]don原创 2015-05-10 00:07:32 · 7955 阅读 · 1 评论 -
linux shell script程序之选择结构简介
很多人都是先学习C/C++语言, 然后再学习shell script的。 如果大家有一点点编程基础, 那么就很容易理解所谓的顺序、选择和循环。顺序结构其实没什么好说的, 之前早就接触过了, 在本文中, 我们来介绍一下选择结构。 虽然简单, 但还是要熟练正确地使用, 毕竟和C/C++的语法还是有一些出入的。 一不小心, 就容易出错。1. 先看个入门级别的: [taoge@lo原创 2015-05-09 17:30:05 · 8357 阅读 · 2 评论 -
用shell script自动拉起进程
简单东西, 最近要用, 搞一下:#!/bin/bash while true do procnum=`ps -ef | grep "test" | grep -v grep | wc -l` if [ $procnum -eq 0 ]; then nohup /home/ubuntu/taoge/go/test & fi sle...原创 2018-10-19 20:48:53 · 6598 阅读 · 2 评论