精华内容
下载资源
问答
  • linux字符串比较

    2021-05-11 02:37:56
    比较描述比较描述str = str2检查str1...= str2检查str1与str2是否不同-n str检查str1的长度是否大于0str < str2检查str1是否小于str2-z str检查str1的长度是否为0示例1:字符串相同#!/bin/bashtestuser=rootif[$U...

    比较描述比较描述

    str  = str2检查str1与str2是否相同str  >  str2检查str1是否大于str2

    str != str2检查str1与str2是否不同-n   str检查str1的长度是否大于0

    str <  str2检查str1是否小于str2-z   str检查str1的长度是否为0示例1:字符串相同

    #!/bin/bash

    testuser=root

    if [ $USER = $testuser ]

    then

    echo "Welcome"

    else

    echo "Sorry ,bye"

    fi

    [root@localhost ~]# ./test7.sh

    Welcome

    ************************************************示例2:使用不相等的字符串比较

    #!/bin/bash

    testuser=bad

    if [ $USER != $testuser ]

    then

    echo "The isn't $testuser"

    else

    echo "Welcome $testuser"

    fi

    [root@localhost ~]# ./test8.sh

    The isn't bad

    ************************************************示例3:字符串大小

    -n 大于0

    -z 等于0

    #!/bin/bash

    var1=testing

    var2=''

    if [ -n $var1 ]

    then

    echo "The string  is not empty"

    else

    echo "The string is empty"

    fi

    if [ -z $var2 ]

    then

    echo "The string var2 is empty"

    else

    echo "The string var2 is not empty"

    fi

    [root@localhost ~]# ./test10.sh

    The string  is not empty

    The string var2 is empty

    展开全文
  • 一、什么是ShellShell编程就是对一堆Linux命令的逻辑化处理应用例:举个简单的例子,我们做pythonweb开发的,在以前,如果要在本地将程序打包,然后部署到远程服务器(抛开现在的ci, 原始的方法), 我们以前的做法...

    一、什么是Shell

    Shell编程就是对一堆Linux命令的逻辑化处理

    应用

    例:举个简单的例子,我们做pythonweb开发的,在以前,如果要在本地将程序打包,然后部署到远程服务器(抛开现在的ci, 原始的方法), 我们以前的做法通常会经历如下几个步骤:

    拉取最新代码(git pull)

    编译打包

    上传并部署到远程服务器

    每次打包都要经历这一个阶段,效率低又烦躁。而此时,我们可以编写一个shell脚本,然后每次只需要运行一下这个shell脚本,即可实现打包部署这一系列动作,彻底解放双手,这就是shell的应用

    二、开始shell

    1、编写第一个shell程序

    #!/bin/bash

    #第一个shell小程序

    echo hello world!

    以上,我们的第一个shell小程序就完成了,结果当然是输出我们熟悉的hello world。

    第一行表示我们选择使用bash shell。

    shell中#符号表示注释。shell的第一行比较特殊,一般都会以#!开始来指定使用的shell类型。在linux中,除了bash shell以外,还有很多版本的shell, 例如zsh、dash等等...不过bash shell还是我们使用最多的。

    第二行以#符号开始,表示本行是注释,运行的时候是不会运行本行的。

    第三行中的echo是linux中的输出命令,输出hello world!

    2、运行第一个Shell程序

    新创建一个文件(hello_world.sh), 然后将以上代码复制到此文件中,然后需要赋予此文件的可执行权限。

    chmod +x hello_world.sh

    然后执行:

    ./hello_world.sh

    便会运行我们所编写的shell程序

    在linux中,后缀名几乎是可以任意的或者没有后缀名,一般将shell保存为xxx.shell是为了看起来更直观。

    如果直接执行hello_world.sh,这时会默认从$PATH环境变量中去寻找,这时,由于我们未将此文件配置在环境变量中,因此会找不到。所以,我们用了"."这个符号,表示从当前目录找。

    除了以上执行方法,我们还可以直接指定shell来运行:

    /bin/sh hello_world.sh

    此处指定用了/bin/sh来执行,这时hello_world.sh中指定的/bin/bash将不会生效。

    三、Shell语法

    1、字符串

    字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号。

    单引号

    str='this is a string'

    单引号字符串的限制:

    单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;

    单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用。

    双引号

    your_name='liang'

    str="Hello, I know you are \"$your_name\"! \n"

    echo -e $str

    输出结果为:

    Hello, I know you are "liang"!

    双引号的优点:

    双引号里可以有变量

    双引号里可以出现转义字符

    获取字符串长度

    string="abcd"

    echo ${#string} #输出 4

    提取子字符串

    以下实例从字符串第 2 个字符开始截取 4 个字符:

    string="oob is a great site"

    echo ${string:1:4} # 输出 ob i

    注意:第一个字符的索引值为 0。

    2、变量

    局部变量 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。

    环境变量 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。

    shell变量 shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行

    2.1 自定义局部变量

    #自定义变量hello

    hello="hello world"

    echo $hello

    #自定义变量的第二种方式

    hello_01=hello_01

    echo ${hello_01}

    1、在shell编程中, 如果变量出现空格或者引号,那么也必须加引号, 否则就可以省略。

    2、等号两侧不能有空格

    3、查看变量可以用 echo

    math?formula=%E5%8F%98%E9%87%8F%E5%90%8D%20%E6%88%96%E8%80%85%20echo{变量名}

    4、变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,比如下面这种情况:

    skill='shell'

    echo "I am good at ${skill}Script"

    自定义全局变量

    #自定义全局变量

    export name=liang

    export 功能说明:设置或显示环境变量。

    语  法:export [-fnp][变量名称]=[变量设置值]

    补充说明:在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅限于该次登陆操作。

    参  数:

    -f  代表[变量名称]中为函数名称。

    -n  删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。

    -p  列出所有的shell赋予程序的环境变量。

    说明:

    1、执行脚本时是在一个子shell环境运行的,脚本执行完后该子shell自动退出;

    2、一个shell中的系统环境变量会被复制到子shell中(用export定义的变量);

    3、一个shell中的系统环境变量只对该shell或者它的子shell有效,该shell结束时变量消失

    (并不能返回到父shell中)。

    4、不用export定义的变量只对该shell有效,对子shell也是无效的。

    2.2 环境变量

    #使用环境变量

    echo $PATH

    #查看所有环境变量

    env

    export定义的环境变量也会在此处输出

    2.3shell脚本内置变量

    在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……

    以下实例我们向脚本传递三个参数,并分别输出

    #!/bin/bash

    echo "Shell 传递参数实例!";

    echo "执行的文件名:$0";

    echo "第一个参数为:$1";

    echo "第二个参数为:$2";

    echo "第三个参数为:$3";

    为脚本设置可执行权限,并执行脚本,输出结果如下所示:

    [root@liang shell]# ./shell01.sh 1 2 3

    Shell 传递参数实例!

    执行的文件名:./shell01.sh

    第一个参数为:1

    第二个参数为:2

    第三个参数为:3

    另外,还有其他特殊字符用来处理参数:

    $0获取当前执行的shell脚本文件名,包括脚本路径

    $n获取当前执行的shell脚本的第n个参数值,n大于9时,需加{},如:${10}

    $#获取当前shell命令中参数的总个数

    $?获取执行上一个指令的返回值(0为成功,非0为失败)

    $*获取当前shell命令中的所有参数

    2.4删除变量

    使用 unset 命令可以删除变量。语法:

    #自定义变量hello

    hello="hello world"

    echo $hello

    #自定义变量的第二种方式

    hello_01=hello_01

    unset hello_01

    echo ${hello_01}

    变量被删除后不能再次使用,输出:

    [root@liang shell]# ./shell01.sh

    hello world

    2.5将linux命令执行结果赋值给变量

    #!/bin/bash

    path=$(pwd)

    files=`ls ..`

    echo current path: $path

    echo files: $files

    以上2行和第3行分别演示了两种方式来将Linux命令执行结果保存到变量。

    第2行将pwd执行结果(当前所在目录)赋值给path变量。

    第3行将ls -al命令执行结果(列出当前目录下所有的文件及文件夹)赋值给变量

    注意:第三行的符号不是单引号,是键盘上“~”这个按键

    输出:

    [root@liang shell]# ./shell01.sh

    current path: /root/liang/shell

    files: awk dev04_shell_04 docker learn_dockerfile new.txt one_shell.sh shell text1.txt text2.txt text3.txt

    3、数组

    bash支持一维数组,并且没有限定数组的大小。

    3.1 定义数组

    在 Shell 中,用括号来表示数组,数组元素用"空格"符号分割开。定义数组的一般形式为:

    array_name=(value0 value1 value2 value3)

    还可以单独定义数组的各个分量:

    array_name[0]=value0

    array_name[1]=value1

    array_name[n]=valuen

    3.2 读取数组

    读取数组元素值的一般格式是:

    #${数组名[下标]}

    valuen=${array_name[n]}

    使用 @ 符号可以获取数组中的所有元素,例如:

    echo ${array_name[@]}

    3.3 获取数组的长度

    获取数组长度的方法与获取字符串长度的方法相同,例如:

    # 取得数组元素的个数

    length=${#array_name[@]}

    # 或者

    length=${#array_name[*]}

    # 取得数组单个元素的长度

    lengthn=${#array_name[n]}

    转下文:shell脚本(二)-- 运算符

    展开全文
  • a="china" b="" al=${#a} bl=${#b} if [ ${al} -gt 0 ]; then echo "${a} 的长度大于0" fi if [ "${bl}" -gt "0" ]; then echo "${b} 的长度大于0" fi END。
    a="china"
    b=""
    al=${#a}
    bl=${#b}
    if [ ${al} -gt 0 ]; then
            echo "${a} 的长度大于0"
    fi
    
    if [ "${bl}" -gt "0" ]; then
            echo "${b} 的长度大于0"
    fi
    

    END。

    展开全文
  • 1. set命令可以显示出当前shell下所有全局参量定义及其值;2. 查找并删除当前目录下小..."+"是表示要求系统只列出大于指定大小的文件,而使用"-"则表示要求系统列出小于指定大小的文件。3. 遍历文件夹grep一个字符...

    1. set命令可以显示出当前shell下所有全局参量定义及其值;

    2. 查找并删除当前目录下小文件:

    find . -type f -size -10k -exec rm {} \;

    说明: www.2cto.com

    -type f 查找文件

    -size -10k,

    小于10k的。"+"是表示要求系统只列出大于指定大小的文件,而使用"-"则表示要求系统列出小于指定大小的文件。

    3. 遍历文件夹grep一个字符串

    find . -name "*c" | xargs grep "strings"

    在当前文件夹下所有c文件中查找字符串“string”

    4. 在某目录下文件中查找某字符串

    grep -r youcode dir

    例如:查找home下文件中查找hello

    grep -r hello /home

    例如:在当前所有目录下文件中查找hello,不区分大小写

    grep -ir hello .  www.2cto.com

    从文件内容查寻匹配指定字符串的行:

    $ grep "被查寻的字符串" 文件名

    从文件内容查寻与正则表达式匹配的行:

    $ grep –e “正则表达式” 文件名

    查寻时不区分大小写:

    $ grep –i "被查寻的字符串" 文件名

    查寻匹配的行数:

    www.2cto.com

    $ grep -c "被查寻的字符串" 文件名

    从文件内容查寻不匹配指定字符串的行:

    $ grep –v "被查寻的字符串" 文件名

    从根目录开始查寻所有扩展名为.log的文本文件,并找出包罗”ERROR”的行

    linux下查找字符串

    如果你想在当前目录下 查找"hello,world!"字符串,可以这样: grep -rn "hello,world!" * * : 表示当前目录所有文件,也可 ...

    在Linux下查找文件内容包含某个特定字符串的文件

    如何在Linux下查找文件内容包含某个特定字符串的文件? 我的目录下面有test1和test2两个文件夹,里面都含有很多文件,其中test2里面还包含一个test文件夹 我想请问的是,如何通过查找关键 ...

    &lbrack;转帖&rsqb;linux下查找文件及查找包含指定内容的文件常用命令。

    linux下查找文件及查找包含指定内容的文件常用命令. https://blog.csdn.net/yangyu19910407/article/details/18266821 最简单的查找 fin ...

    Linux下查找包含BOM头的文件和清除BOM头命令 2014-08-16 12&colon;30&colon;50

    Linux下查找包含BOM头的文件和清除BOM头命令 2014-08-16 12:30:50 分类: 系统运维 查找包含BOM头的文件,命令如下: 点击(此处)折叠或打开 grep -r -I -l ...

    linux下查找文件

    1,find 经常在linux下工作,总要查找一些文件,于是就搜索的学习了一下 find 指定目录 指定条件 指定动作 举例:find . -name "my*" 查找 当前目录下 ...

    Linux下对字符串进行MD5加密

    Linux下对字符串进行MD5加密 比如要用MD5在linux下加密字符串“test",可以使用命令:$ echo -n test|md5sum098f6bcd4621d373cade4e8 ...

    Linux下tomcat的shutdown命令可以关闭服务但是杀不死进程

    Linux下tomcat的shutdown命令可以关闭服务但是杀不死进程 原因: 一般造成这种原因是因为项目中有非守护线程的存在: 解决方案: 一.从Tomcat上解决 方案1:(推荐的方案:因为一台 ...

    Linux下vi替换字符命令操作实例

    在Linux下的开发中,经常涉及到对文件里的字符进行处理,当中,对字符的替换操作也是非常的频繁. 本文以一个实际的文件为例,具体介绍了Linux下经常使用的vi替换字符命令,为相关的开发工作提供给了參 ...

    终端的乐趣--Linux下有趣的终端命令或者工具【转】

    转自:https://blog.csdn.net/gatieme/article/details/52144603 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原 ...

    随机推荐

    委托,匿名函数和lambda表达式

    很早之前就接触到了委托,但是一直对他用的不是太多,主要是本人是菜鸟,能写的比较高级的代码确实不多,但是最近在看MSDN微软的类库的时候,发现了微软的类库好多都用到了委托,于是决定好好的研究研究,加深一 ...

    主流Web服务器一览

    概念Web服务器是可以向发出请求的浏览器提供文档的程序. 1.服务器是一种被动程序:只有当Internet上运行在其他计算机中的浏览器发出请求时,服务器才会响应. 2.最常用的Web服务器是Apach ...

    &lbrack;前端&rsqb;前端面试题第二波~&lbrack;http&sol;tcp&sol;网络篇&rsqb;

    目录: Cookie 是否会被覆盖,localStorage是否会被覆盖? 如何保持登陆状态? Ajax原生 Jsonp的原理.怎么去读取一个script里面的数据. 如果页面初始载入的时候把ajax ...

    fedora 23中配置nfs-server

    fedora 23中配置nfs-server */--> fedora 23中配置nfs-server Table of Contents 1. 产考资料 2. NFS配置文件 2.1. /et ...

    &lbrack;TSOI2005&rsqb;Exhibit

    问题描述 博览馆正在展出由世上最佳的 M 位画家所画的图画. wangjy 想到博览馆去看这几位大师的作品. 可是,那里的博览馆有一个很奇怪的规定,就是在购买门票时必须说明两个数字, a 和 b ,代 ...

    vps安装wordpress遇到的问题(lnmp)

    1.要执行请求的操作,WordPress 需要访问您网页服务器的权限. 请输入您的 FTP 登录XXXX完美解决方法 因为在wordpress中新上传的插件的权限都是www用户的,而不是root或其他 ...

    shell脚本的if语句,判断某程序是否存在,不存在启动该程序&excl;

    想必大家都知道 "如果......那么......" 这种语法的应用吧! 当然呢,linux下对于这种用法也是有所考虑的,很多时候我们都需要写一个shell脚本,难免会避免if语句 ...

    Node&period;js&plus;Express on IIS&lpar;续&rpar;

    前一篇文章介绍了如何用iis来伺服node网站(开发期间特别有用),结果还落掉一点,我们用node来做restful服务的时候,很多时候可能要响应500系列的状态码,并不是整个系统从头到尾都是200, ...

    abap关键字

    1:abap将提升的关键字快捷输入 按tab键,提示的关键字将会自动输入. 2:shift tab 用于对其格式 3:ctrl+d 将改行复制到下一行.

    c&plus;&plus;中内存拷贝函数&lpar;C&plus;&plus; memcpy&rpar;详解

    原型:void*memcpy(void*dest, const void*src,unsigned int count); 功能:由src所指内存区域复制count个字节到dest所指内存区域. 说明 ...

    展开全文
  • 1. set命令可以显示出当前shell下所有全局参量定义及其值;2. 查找并删除当前目录下小文件:find . -type f -size -10k -exec rm {} \;说明:-type f 查找文件-size -10k...3. 遍历文件夹grep一个字符串find . -name...
  • shell 编程中使用到得if语句内判断参数–b 当file存在并且是块文件时返回真-c 当file存在并且是字符文件时返回真-d 当pathname存在并且是一个目录时返回真-e 当pathname指定的文件或目录存在时返回真-f 当file存在...
  • linux 字符的含义

    2021-05-10 22:46:52
    #字符linux shell中的含义########判断符号#############-eq 等于 =-lt 小于 <-le 小于等于 <=-gt 大于 >-lg 大于等于 >=-ne 不等于 !=#特殊符号| 管道符 管道前命令运行的结果交...
  • 字符串当成整型进行比较,由于abcd等字符对不上0123当程序尝试去转成二进制时无法完成转换,所以用于数值比较的运算不能用于字符串比较;但是把整型当成字符串进行比较,0123这些数值完全可以转成ASCII码而且原本...
  • 1.长度[web97@salewell97 ~]$ test='I love china'[web97@salewell97 ~]$ echo ${#test}12${#变量名}得到字符串长度另一种方法:expr length "$adcode"2.截取字串[chengmo@localhost ~]$ test='I love china'...
  • 字符串处理函数(13, 19)这些函数的头文件都是string.h非str前缀的字符串操作bcmp: 比较内存中的内容, 建议用memcmp()取代函数定义: int bcmp(const void *s1, const void *s2, int n);说明: 用来比较s1和s2所指的...
  • 什么是shellshell是一个用C语言编写的程序,它是用户使用Linux的桥梁,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。shell脚本是一种...
  • 原文https://blog.csdn.net/wuyinggui10000/article/details/52779364脚本开发中遇到的问题是:原java中的字符串分割操作(substring ...shell中可以采用标识符来做分割字符串,包括substring(0,index)和substrin...
  • ${#string}$string的长度${string:position}在$string中, 从位置$position开始提取子串${string:position:length}在$string中, 从位置$position开始提取长度为$length的子串${string#substring}从变量$string的开头,...
  • 1.长度[web97@salewell97 ~]$ test='I love china'[web97@salewell97 ~]$ echo ${#test}12${#变量名}得到字符串长度2.截取字串[chengmo@localhost ~]$ test='I love china'[chengmo@localhost ~]$ echo ${test:5}e ...
  • } 执行结果: 2、strlen函数 strlen 函数 功能:返回字符串的长度(不包含 ‘\0’) 相关函数 头文件 #include 函数声明 size_t strlen (const char * s) 函数说明 strlen() 用来计算指定字符串s 的长度,不包括...
  • Shell test 命令Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。数值测试参数说明-eq等于则为真-ne不等于则为真-gt大于则为真-ge大于等于则为真-lt小于则为真-le小于等于...
  • } 以上是transform的基本使用,接下来说明如何用它来处理字符串的大小写转换 事实上很简单,主要用到了,单个字符的大小写转换函数:tolower(),toupper() 不过对于大写转小写,同时小写转大写的要自己单独处理,...
  • 问题描述:想统计一下vcf文件中FILTER这一列中,是PASS的个数我们知道,vcf文件包括...因为所有的注释行都是以#开头的,所以用grep -v提取非注释行,就是正文,还有一个就是“^”的用法,这个正则表达式,也是linux...
  • 先写一些基本语法:1、字符串判断str1 = str2 当两个串有相同内容、长度时为真str1 != str2 当串str1和str2不等时为真-n str1 当串的长度大于0时为真(串非空)-z str1 当串的长度为0时为真(空串)str1 当串str1为...
  • 13. strlen()(返回字符串长度)相关...函数说明 strlen()用来计算指定的字符串s的长度,不包括结束字符"\0"。返回值 返回字符串s的字符数。范例#includemain(){char *str = "12345678";printf("str length = %d\n"...
  • 2.判断两个字符串是否同构算法已经描述了,这里再简写一下:(1)将两者均加倍:u = s1+s1, w = s2+s2;i指向u[0],j指向w[0];(2)k = 0开始,比较u[i+k]与v[j+k],如果相等则k++,如果k == len那么存储匹配的两个位置...
  • 然而,很多编程问题需要用到更小的数据单元,例如字符串和数字,来解决。 本章将学习几个用于操纵字符串和数字的shell脚本特性。Shell提供了多种字符串操作的参数扩展。除了算术扩展(在第7章讲到),还有一个常见...
  • 有时在Linux操作系统中需要计算某个字符串的长度,通过查询资料整理了下目前Shell中获取字符串的长度的多种方法,在这里分享给大家,方法如下:方法1:使用wc -L命令wc -L可以获取到当前行的长度,因此对于单独行的...
  • shell 获得字符串所在行数及位置01 获取字符串所在的行数方式一:用grep -n[root@root]# cat testapplebitcreatedelectexeflowgood[root@root]# cat test | grep -n exe5:exe[root@root]# cat test | grep -n exe | ...
  • 【截取】一、Linux shell 截取字符变量的前8位,有方法如下:1.expr substr “$a” 1 82.echo $a|awk ‘{print substr(,1,8)}’3.echo $a|cut -c1-84.echo $5.expr $a : ‘(.\).*’6.echo $a|dd bs=1 count=8 2>...
  • 串口字符串-HEX格式

    2021-05-11 11:31:36
    串口字符串-HEX格式C++SerialSerialPortHEX介绍串口通信过程中 通常涉及一个数据的模拟过程以及数据发送过程, 一般来说, 我们会发送一串指令给下位机68 05 00 84 01 02 03例如这种, 我们明白 这是我们 将相应的字符...
  • 一、什么是ShellShell编程就是对一堆Linux命令的逻辑化处理应用例:举个简单的例子,我们做pythonweb开发的,在以前,如果要在本地将程序打包,然后部署到远程服务器(抛开现在的ci, 原始的方法), 我们以前的做法...
  • shell字符串截取总结

    2021-05-10 05:03:35
    0x01、grep在文件中搜寻字符串匹配的行并输出Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式...
  • 在编写Bash脚本时,您通常需要比较两个字符串以检查它们是否相等。 当两个字符串具有相同的长度并且包含相同的字符序列时,它们是相等的。本教程描述了如何比较Bash中的字符串。比较运算符比较运算符是比较值并返回...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 108,217
精华内容 43,286
关键字:

linux字符串大于0

linux 订阅