前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >shell脚本中字符串的常见操作及"command not found"报错处理(附源码)

shell脚本中字符串的常见操作及"command not found"报错处理(附源码)

作者头像
程序员十三
发布2018-03-15 15:05:39
2K0
发布2018-03-15 15:05:39
举报

简介

昨天在通过shell脚本实现一个功能的时候,由于对shell处理字符串的方法有些不熟悉导致花了不少时间也犯了很多错误,因此将昨日的一些错误记录下来,避免以后再犯。

字符串的定义与赋值

# 定义STR1变量,值为abc

STR1 = "abc"(错误写法)

STR1="abc"(正确写法)

在编写java代码时会考虑到格式化,往往变量定义时会有一些空格或者换行符等,因此在写shell脚本时也就顺手这么写了,在运行时就会报错:"command not found",将空格删除才正常运行。

源码如下:

#!/bin/bash

# file:testStr.sh
# author:13
# date:2017-07-21

STR1="abc"
echo $STR1
STR2 = "abc"
echo $STR2
STR
STR

对STR1定义是正确的,STR2则为错误方式,删除空格即可。

字符串连接

针对字符串的连接操作shell提供了相当简单的做法,直接将变量放到一起或用双引号即可。

#!/bin/bash

# file:testStr.sh
# author:13
# date:2017-07-21

STR1="abc"
STR2="abbcd abc ccc"

#连接STR1和STR2变量并赋值给STR3
STR3=$STR1$STR2
echo $STR3

#连接STR1与"abc" 并赋值给STR4
STR4=$STR1"abc"
echo $STR4

if条件语句中的空格

# 比较两个字符串是否相等中if语句的写法

STR1="abc"
STR2="abcd"

if[$STR1=$STR2](错误写法)

if [ $STR1 = $STR2 ](正确写法)

if语句中如果不添加空格的话,"if["会被识别为一个未知的命令,在运行时就会报错:"command not found",添加正确的空格才能运行。

if
if

源码如下:

#!/bin/bash

# file:testStr.sh
# author:13
# date:2017-07-21

STR1="abc"
STR2="abcd"

#if[$STR1=$STR2](错误写法)
if [ $STR1 = $STR2 ]
then
    echo "相等"
else
    echo "不相等"
fi

shell中判断字符串包含关系的方法

利用grep关键字查找
#!/bin/bash

# file:testStr.sh
# author:13
# date:2017-07-21

STR1="abc"
STR2="abbcd abc ccc"

result=$(echo $STR2 | grep "${STR1}")
echo $result
 if [[ "$result" != "" ]]
 then
     echo "包含"
 else
     echo "不包含"
 fi
利用字符串运算符(更简洁、推荐使用)
#!/bin/bash

# file:testStr.sh
# author:13
# date:2017-07-21

STR1="abc"
STR2="abbcd abc ccc"

if [[ $STR2 =~ $STR1 ]]
 then
     echo "包含"
 else
     echo "不包含"
 fi

总结

在修复一个项目中的bug时所遇到的一些小问题,最终处理完成并且修复了bug差不多花了四五个小时的时间,也都一一记录了下来,提醒自己,同样的,也给其他碰到类似问题的朋友一些参考。

处理的问题是我在github上开源的一个项目,bug被人提出来总要解决掉的,GitHub地址点这里,开源中国地址点这里

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 字符串的定义与赋值
  • 字符串连接
  • if条件语句中的空格
  • shell中判断字符串包含关系的方法
    • 利用grep关键字查找
      • 利用字符串运算符(更简洁、推荐使用)
      • 总结
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档