shell基础学习中的字符串操作、for循环语句示例

 更新时间:2014年04月16日 09:41:10   作者:   我要评论
这篇文章主要介绍了shell基础学习中的字符串操作、for循环语句示例

复制代码 代码如下:

#!/bin/bash
my_name="jxq"

echo $my_name
echo ${my_name}

# ------------------------------------
# 字符串操作
# ------------------------------------

# 单引号字符串的限制,双引号没有这些限制:
# 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的
# 单引号字串中不能出现单引号(对单引号使用转义符后也不行)
name="will"
age=24
my_full_name='${name}${age}'
echo ${my_full_name}
my_full_name="${name}${age}"
echo ${my_full_name}

# 字符串拼接
echo ${name}${age}

# 字符串长度
echo ${#name} # 4

# substring
message="I want to be healthy"
echo ${message:2} # want to be health, 2是position
echo ${message:2:4} # want,2是position,4是len

# delete shortest match from front: ${string#substring}
echo ${message#*want}
# delete shortest match from back: ${string%substring}
echo ${message%healthy}

# delete longest match from front: ${string##substring}
echo ${message##*h}
# delete longest match from back: ${string%%substring}
echo ${message%%t*}

# find and replace: ${string/pattern/replacement}
book_name="Catch Eye Eye"
echo ${book_name/Eye/Cat}
# find and replace all match: ${string//pattern/replacement}
echo ${book_name//Eye/Cat}

file_path="/usr/local/bin"
# only replace when pattern match the beginning: ${string/#pattern/replacement}
echo ${file_path/#\/usr/tmp}
# only replace when pattern match the end: ${string/%pattern/replacement}
echo ${file_path/%bin/tmp}

# string index
stringZ=abcABC123ABCabc
echo `expr index "$stringZ" C12` # Mac OSX不支持expr


# ------------------------------------
# 语句
# ------------------------------------

# if
if true
then
 echo "ok, true"
fi

# 写成一行
if true; then echo "ok"; fi

var='12'
if [ $var -eq 12 ]; then
    echo "This is a numeric comparison if example"
fi

if [ "$var" = "12" ]; then
    echo "This is a string if comparison example"
fi

if [[ "$var" = *12* ]]; then
    echo "This is a string regular expression if comparison example"
fi

name="jxq"
if [ "$name" = "jxq" ]; then
 echo "hello" $name
fi


# 循环语句
for item in `ls *.sh`
do
 echo $item
 echo "completed"
done

# 写成一行
for item in `ls *.sh`; do echo $item; echo "completed"; done;

counter=1
while :
do
 echo "bee"
 let "counter=$counter+1"
 if [ $counter -eq 3 ]; then
  break # break/continue与Java类似
 fi
done

# Case语句
opt="install"
case "${opt}" in
 "install" )
  echo "install..."
  exit

 
 "update" )
  echo "update..."
  exit

 
 *) echo "bad opt"
esac

相关文章

  • 一个监控Squid运行进程数并自动重启的简洁Shell脚本分享

    一个监控Squid运行进程数并自动重启的简洁Shell脚本分享

    这篇文章主要介绍了一个监控Squid运行进程数并自动重启的简洁Shell脚本分享,本文直接给出实现代码,需要的朋友可以参考下
    2014-12-12
  • Linux bash删除文件中含“指定内容”的行功能示例

    Linux bash删除文件中含“指定内容”的行功能示例

    这篇文章主要介绍了Linux bash删除文件中含“指定内容”的行功能,结合具体实例形式分析了Linux bash删除文件指定内容的实现原理与相关操作技巧,需要的朋友可以参考下
    2017-06-06
  • 深入理解Shell输出颜色与控制

    深入理解Shell输出颜色与控制

    在Linux shell或者平时echo输出时有时为了区分某些字符串的重要性,往往对其输出内容添加颜色以醒目区分。下面这篇文章就主要介绍了关于Shell输出颜色与控制,有需要的朋友们可以参考借鉴,下面来一起看看吧。
    2016-12-12
  • 利用shell获取指定日期前N天的日期

    利用shell获取指定日期前N天的日期

    最近因为项目的需要对比2015年10月的数据,因为一年来的数据经过了很多次调整和处理,遇到的最直接的问题是很多数据需要重新计算。只好写脚本刷数据。在准备脚本的过程中,就需要根据给定的日期处理数据,所以就有了这篇文章,下面有需要的朋友们一起学习学习。
    2016-11-11
  • shell实现自动adsl拨号并检测连接状况脚本分享

    shell实现自动adsl拨号并检测连接状况脚本分享

    这篇文章主要介绍了shell实现自动adsl拨号并检测连接状况脚本分享,本文给出了两个脚本,一个是自动拨号脚本,一个是检测连接状态脚本,需要的朋友可以参考下
    2014-12-12
  • linux 中的gzip命令

    linux 中的gzip命令

    gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。接下来通过本文给大家分享linux 中的gzip命令,感兴趣的朋友一起看看吧
    2017-09-09
  • 浅谈CI脚本异常退出问题定位

    浅谈CI脚本异常退出问题定位

    下面小编就为大家带来一篇浅谈CI脚本异常退出问题定位。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • Linux shell实现每天定时备份mysql金沙国际官网

    Linux shell实现每天定时备份mysql金沙国际官网

    这篇文章主要介绍了Linux shell实现每天定时备份mysql金沙国际官网的代码,分享给大家,希望大家能够喜欢。
    2015-03-03
  • 一天一个shell命令 linux文件内容操作系列-cat命令详解

    一天一个shell命令 linux文件内容操作系列-cat命令详解

    这篇文章主要介绍了一天一个shell命令 linux文件内容操作系列-cat命令详解,需要的朋友可以参考下
    2016-06-06
  • 详解Linux 操作系统下安装rpm包的方法步骤

    详解Linux 操作系统下安装rpm包的方法步骤

    这篇文章主要介绍了详解Linux 操作系统下安装rpm包的方法步骤的相关资料,需要的朋友可以参考下
    2015-11-11

最新评论