`

ubuntu中使用==比较字符串报错解决方法

 
阅读更多

ubuntu12.04版本

以下脚本,总是报错

#!/bin/bash

while read line
do
testing=$(echo $line | grep -ic '<servername>')
if [ "$testing" == "1" ] ; then
#here [==] is reason
	echo $line
fi
done < dbinfo.xml

 报错的提示为

dbinfo2.sh: 6: [: 0: unexpected operator
dbinfo2.sh: 6: [: 1: unexpected operator
dbinfo2.sh: 6: [: 0: unexpected operator
dbinfo2.sh: 6: [: 0: unexpected operator
dbinfo2.sh: 6: [: 0: unexpected operator
dbinfo2.sh: 6: [: 0: unexpected operator
dbinfo2.sh: 6: [: 0: unexpected operator

查找原因

1.ubuntu默认的shell版本为dash,改为鸟哥小菜中的bash

2.使用=(一个等于号)比较字符串的

其实,鸟哥推荐使用==(两个等于号)比较字符串,话说一个有赋值的意思

 

那么怎么把sh改为指向bash呢?
最暴力的方法当然是直接把/bin/sh的软链接改到bash中,
如:ln -s /bin/bash /bin/sh
但是,有优雅一些的方法,
sudo dpkg-reconfigure dash
出现菜单问你是否要dash的时候,选no就可以了。
再次检查一下, ls /bin/sh -al 发现软链接指向/bin/bash就可以了。

 

linux 软连接怎么查看原始地址

 

只要ls -l 一下这个文件 ->后面就是原始地址
ls -l sh
lrwxrwxrwx 1 root root 4  4月 26 16:46 sh -> bash

分享到:
评论

相关推荐

    NCL报错处理.rar

    例如,尝试将字符串与数字进行算术运算,或者使用了未初始化的变量,都会导致运行时错误。理解NCL的数据类型(如字符、整数、浮点数和数组)及其操作规则至关重要。 描述中提到上传了两张图片,这可能是显示了报错...

    shell字符串截取报错:Bad substitution的解决

    shell进行字符串截取 运行 ${GIT_COMMIT:0:6}报错: /tmp/jenkins7505855461406722507.sh: 4: /tmp/jenkins7505855461406722507.sh: Bad substitution 原因:两种shell语言解释器 bash和dash 查看当前/bin/sh ...

    ubuntu 11安装QQ遇到问题及解决

    i386.deb`时,可能会出现错误提示:“dpkg:处理~/linuxqq_v1.0.2-beta1_i386.deb(--install)时出错:parsing file '/var/lib/dpkg/tmp.ci/control' near line 7 package 'linuxqq': 版本字符串v1.0.2-beta1中有...

    Ubuntu/Deepin下Python3.8出现SSL错误的解决方案

    在使用pip3的时候,错误信息如下: WARNING: pip is configured with locations that require TLS/SSL, however the ssl ...出现这种错误可以在Modules/Setup中,Ctrl + F查找字符串SSL, 将找到的第一个SSL下面的命

    使用Ubuntu 22.04.2 LTS编写shell脚本(上)

    你还可以在脚本中使用`readonly`关键字设置变量为只读,一旦设置,尝试更改该变量将会报错。如果不再需要某个变量,可以使用`unset`关键字来删除它。 此外,Shell脚本允许在运行时接收命令行参数,这些参数通过位置...

    android2.3_ubuntu编译环境配置说明.pdf

    这涉及到在`build/core/main.mk`文件中检查`build_arch`变量是否包含"64"或"i686"字符串。不满足条件的情况下,会打印警告信息并停止构建过程。 3. **Java开发工具包(JDK)的安装和配置**:Android开发依赖Java,...

    黑苹果双系统时间同步100%解决方案

    安装完黑苹果之后,bios的时间是不动了。...新建字符串值 timesync 数据=c:\autorun.bat 即可 第1,2点是为了让时间不会变慢,第3点保证开机时间就同步。不用等半个小时. 以上可100%解决黑苹果时间同步问题。

    ubuntu下让python脚本可直接运行的实现方法

    在Ubuntu操作系统中,为了让Python脚本能够像普通可执行文件一样直接运行,需要进行一些配置。这主要涉及到两个步骤:指定Python解释器路径和赋予脚本执行权限。下面详细讲解这两个步骤以及解决可能出现的问题。 ...

    mysql不支持group by的解决方法小结

    `来去掉`ONLY_FULL_GROUP_BY`,替换`'new_value'`为不含`ONLY_FULL_GROUP_BY`的新模式字符串。 - 会话模式修改:如果你只需要改变当前会话的模式,可以使用`SET sql_mode = 'new_value';`。 - 配置文件修改:在`my...

    Python连接MySQL并使用fetchall()方法过滤特殊字符

    由于数据可能包含特殊字符,如单引号,我们使用列表推导式和字符串的`replace()`方法将单引号替换为两个单引号,以避免在输出时引发错误。 `filtered_results`变量存储了处理后的数据,每个元素都是一个列表,代表...

    使用C++调用Python代码的方法详解

    在C++代码的`Py_BuildValue()`调用中,`(ss)`是一个格式字符串,表示我们正在创建一个包含两个字符串的元组。这个函数将C++的字符串转换为Python对象,使得Python函数能理解这些参数。`PyArg_Parse()`则完成了相反的...

    Linux Shell脚本系列教程(二):终端打印命令详解

    - 要在`echo`中使用转义序列(如 `\t` 表示制表符),可以使用 `-e` 选项,但在Ubuntu 14.04中,这个选项可能是不必要的。 **打印彩色输出** 在终端中使用转义序列可以实现彩色输出,这对于调试和显示重要信息非常...

    18342075米家龙实验一1

    在实验代码中,可以看到典型的汇编语言结构,如`.section .data`定义数据段,`.ascii`用于字符串常量,`.int`用于整数初始化。`_start`是程序的入口点,`movl`、`addl`、`cmovl`等指令用于操作寄存器和内存,`call`...

    PHP simplexml_import_dom()函数讲解

    在这个例子中,我们首先创建了一个`DOMDocument`对象,并加载了一个XML字符串。然后,`simplexml_import_dom()` 将这个DOM文档转换为一个SimpleXML对象。最后,我们通过属性访问器`-&gt;from`来输出XML中的`from`元素的...

    ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解

    12. 数据库连接安全:实例中使用try...catch语句块来捕获并处理数据库连接时可能出现的异常,这样可以避免在出现数据库连接错误时服务器报错。 综上所述,这个实例演示了在Ubuntu 16.04操作系统环境下,使用PHP脚本...

    redis_4.0.10-1_arm64.deb 银河麒麟v4+飞腾 安装包.zip

    它支持多种数据结构,如字符串、哈希、列表、集合和有序集合,这些数据结构在许多应用中都非常有用。例如,哈希可以用来存储键值对,列表可以处理顺序数据,而有序集合则允许对元素进行排序。 在Redis 4.0.10版本中...

    m4-1.4.19.tar.gz

    4. **文本操作**:m4还支持一系列内置函数,如`shift`用于移除参数列表的第一个元素,`index`用于查找子字符串,`eval`用于计算数学表达式等。 三、m4在Linux系统中的应用 1. **配置脚本**:m4常用于软件构建过程...

    .Net Core 下使用ZKWeb.System.Drawing实现验证码功能(图形验证码)

    在这个过程中,我们会先绘制随机的噪线以增加验证码的复杂性,然后使用随机选择的颜色和字体在画布上绘制验证码字符串。最后,验证码图片会被保存到内存流中并以“image/Png”格式返回。 在部署阶段,需要注意的是...

    如何开启mysql中的严格模式

    何为MySQL的严格模式,简单来说就是MySQL自身对数据进行严格的校验(格式、长度、类型等),比如一个整型字段我们写入一个字符串类型的数据,在非严格模式下MySQL不会报错,同样如果定义了char或varchar类型的字段,...

Global site tag (gtag.js) - Google Analytics