• 使用while循环读取文件

      cat file.txt |while read line
    do
    echo $line
    done 或者: while read line
    do
    echo $line
    done < file.txt
  • zzx@zzx120:~/zzx1/test/a$ echo -n 1;echo -n 2
  • 12zzx@zzx120:~/zzx1/test/a$ echo -n 1;echo ;echo -n 2    #   echo加在 echo -n  中间   可以换行 
  • 1
  • 2zzx@zzx120:~/zzx1/test/a$
  • zzx@zzx120:~/zzx1/test$ seq 1 2 7  #打印奇数
    1
    3
    5
    7
  • zzx@zzx120:~/zzx1$ for i in `seq 1 3` 'a' 'x' ;do echo $i; done     #循环,包括1,2,3,X,Y
    1
    2
    3
    a
    x
    1. 算式的结果,例如计算4+3 就用 $[4+3]   # 加减乘除都行
  • zzx@zzx120:~/zzx1$ a=123/123 
    zzx@zzx120:~/zzx1$ echo ${#a}  #  ${#var} 得到var的字节数

    7

  • bash 的组数(array)处理方法。

    一般而言,

    A="a b c def"

    这样的变量只是将

    $A 替换为一个单一的字符串,

    但是改为

    A=(a b c def) ,则是将

    $A 定义为组数...

    bash

    的组数替换方法可参考如下方法:

    ${A[@]} 或       ${A[*]} 可得到             # for i in ${A[*]}

    a b c def (全部组数)

    ${A[0]}

    可得到

    a (第一个组数),${A[1]}

    则为第二个组数...

    ${#A[@]} 或    ${#A[*]} 可得到    4 (全部组数数量)

    ${#A[0]}

    可得到

    1 (即第一个组数(a)的长度),${#A[3]}

    可得到

    3 (第四个组数(def)的长度)

    A[3]=xyz

    则是将第四个组数重新定义为

    xyz ...

  • #!/bin/bash
    a=(

    W
    E
    )
    echo sum=${#a[*]}
    for i in ${a[*]};do
    echo $i;
    done
    echo first:${a[0]}
    echo second:${a[1]}
    zzx@zzx120:~/zzx1$ ./forarr.sh   
    sum=3
    Q
    W
    E
    first:Q
    second:W

  • 编辑一个文件   死机 重新打开一个ssh窗口编辑这个文件 可能提示同时编辑的问题

提示E325: ATTENTION错误    文件只读无法编辑

提示   .file.swp      当前文件夹下找到这个文件删除        rm -rf .file.swp 即可解决

.

czzx@zzx103:~$ echo -n "a   ";echo -n b ;echo " "; echo -n c    #echo -n  不换行输出     echo “ ”  实现换行输出(echo -n 时  echo " " 空行就是换行)
a   b
c

列出脚本所在文件夹位置

#!/bin/bash
base_dir=$(cd "$(dirname "$0")";pwd)
echo $base_dir

linux bash中too many arguments问题的解决方法

给命令执行部分加上双引号即可:

代码如下:
if test -z "`cat filename`"     
[ "`ifconfig |awk '{print $5}'|grep c8`" = "c8:60:00:79:a1:d3" ] && echo ok || echo error
[[ `ifconfig |awk '{print $5}'|grep c8` = "c8:60:00:79:a1:d3" ]] && echo ok || echo error

今天偶尔因解决一个小问题,遇到了一奇怪的问题“[ ]”和"[[  ]] "的不一样的效果,总结如下

显示一下code:     if [ -z ` lsof -i:22 ` ]    //这种写法会报too many arguments,改成[[ -z ` lsof -i:22 ` ]]
                            then
                                 echo "the port is not running"
                             else
                                 echo "the port is running"
                             fi

运行这个简单shell脚本时,总是报too many arguments,最后才查到和版本的通用性是有关系的,更简单的说是,"[[  ]]"比"[ ]"具有更好的通用性,所以,为了避免这种问题的发生,直接将"[  ]"替换成"[[  ]]"就可以了。而且”[[ ]]“比“[ ]”比它有更强的容错性,也就是在"[ ]"可能报的错在"[[ ]]结构中可能不报错,比如&&,||等这样的逻辑判断,因不是本篇重点,一带而过了。

杂点-shell的更多相关文章

  1. linux杂记(十)what is BASH Shell

    first,what is shell?其实只要是碰过计算机的,对于OS(Operation System操作系统,不管是linux.unix.windows)有点概念的人大多都听过这个名词,因为只要 ...

  2. shell脚本杂

    1.sh -x 跟踪shell脚本中的每个命令 [root@master shellexer]# cat bash.sh #!/bin/bash var=$ echo $var [root@maste ...

  3. linux shell 杂

    1. 字符串截取 var=http://www.baidu.com/index.html echo ${var} var=http://www.baidu.com/index.html /*从左到右第 ...

  4. KesionCMS V6.5后台拿SHELL方法

    Title:KesionCMS V6.5后台拿SHELL方法  --2011-03-29 00:21 最近弄一个站点,是KesionCMS V6.5的WEB系统,试了下后台拿webshell方法,记下 ...

  5. 《Shell十三问》笔记(下)

    继续开始shell十三问中11-13问和后续补充的笔记,加油! (14)输入重定向与输出重定向 “>”是标准输出重定向,可以把输出结果送入文件 “<”是标准输入重定向,可以重新指定文件的内 ...

  6. 《shell脚本学习指南》学习笔记之入门

    为什么要使用shell脚本? shell脚本能够轻易处理文件与目录之类的对象,而且是各UNIX系统之间经过POSIX标准化的通用的功能,因此Shell脚本只要“用心写”一次,即可应用到很多系统上,因此 ...

  7. linux,shell脚本set -x的意思

    set -x a=10 命令执行结果: + a=10 echo $a + echo 10 10 set指令能设置所使用shell的执行方式,可依照不同的需求来做设置 -a 标示已修改的变量,以供输出至 ...

  8. linux shell set命令

    Linux set命令用于设置shell. set指令能设置所使用shell的执行方式,可依照不同的需求来做设置. 语法 set [+-abCdefhHklmnpPtuvx] 参数说明: -a 标示已 ...

  9. 菜鸟教程之学习Shell script笔记(上)

    菜鸟教程之学习Shell script笔记 以下内容是,学习菜鸟shell教程整理的笔记 菜鸟教程之shell教程:http://www.runoob.com/linux/linux-shell.ht ...

随机推荐

  1. node - DeprecationWarning: Mongoose: `findOneAndUpdate()` and `findOneAndDelete()` without the `use

           1,  原因是因为:findOneAndUpdate()内部会使用findAndModify驱动,驱动即将被废弃,所以弹出警告!附上官方解释:Mongoose v5.5.8: Depre ...

  2. Day6 - 牛客102C

    链接:https://ac.nowcoder.com/acm/contest/102/C来源:牛客网 题目描述  We define a value of an interval is the seco ...

  3. 树莓派1 安装使用 ZeroTier

    基于P2P网络的Private LAN工具:ZeroTier Linux (DEB and RPM distributions) We've found a way to make the easy ...

  4. 安卓Recycleview简单的网格布局-初学者的关键点

    导包 def supportVersion = '28.0.0' 定义常量我的sdk版本为28 implementation "com.android.support:recyclervie ...

  5. S7-300 实训3 异步电机正反转控制

    含有视频 方便以后查阅 参考书籍 跟我动手学 S7-300/400 PLC 第2版  廖常初 主编 实训3 异步电动机 正反转控制 步骤1 步骤2 在 cycle execution 前方 右击 插入 ...

  6. jQuery实现图片放大镜效果

    实现图片放大镜的原理: 给放大镜元素一个对应的html元素为<div class='right'> 设置这个div的宽高固定为某个值(350px,350px) 设置div的css为超出部分 ...

  7. 获得spring

    这里 手动下载 各版本的发行包 这里是 官方项目地址 这里是在 GitHub上托管源代码 的地方 已知spring依赖的其他jar commons-logging-1[1].0.4.jar

  8. go语言开发环境安装及第一个go程序

    下载Go语言开发包 大家可以在Go语言官网(https://golang.google.cn/dl/)下载 Windows 系统下的Go语言开发包,如下图所示. 安装Go语言开发包 双击我们下载好的G ...

  9. 141-PHP类的抽象方法和继承实例(一)

    <?php abstract class ren{ //定义人类 //定义成员属性 protected $name=''; protected $age=0; //定义成员方法 public f ...

  10. mark LINUX_6.8 python_2.6.6 setup版本升级 python 2.7.9 安装 pip 临时使用国内镜像源库 指定模块版本 删除指定模块

    简单但却又经常需要使用  网上  贴子也很多  也经常用  所以 做个mark 吧: 1首先下载python2.7.9 源tar包 源码安装 可利用linux自带下载工具wget下载,如下所示:   ...