为什么 [ "$foo"=="$bar" ] 在 bash 中总是 true ? [复制]

2023-12-03

我尝试将用户输入与字符串进行比较 这是我的代码

Encode="Encode"
Decode="Decode"

printf "Enter name of file: "
read fileName
printf "Encode Or Decode: "
read EncOrDec

if [ "$Encode"=="$EncOrDec" ]; then
    printf "Encode Nice\n"
elif [ "$Decode"=="$EncOrDec" ]; then
    printf "Decode Nice\n"
else
    printf "Nothing\n"
fi

它总是转到 Encode 语句,为什么? 以及如何修复它


在 bash 中,空格很重要。代替:

if [ "$Encode"=="$EncOrDec" ]; then

With:

if [ "$Encode" = "$EncOrDec" ]; then

如果没有空格,bash 只是测试字符串是否"$Encode"=="$EncOrDec"是否为空。因为它是never空, 的then子句总是被执行。

另外,作为一个小细节,当使用[...], 指某东西的用途=字符串相等是 POSIX 标准。 Bash 接受== but ==不是标准的,并且不能可靠地移植。

这同样适用于elif线。代替:

elif [ "$Decode"=="$EncOrDec" ]; then

With:

elif [ "$Decode" = "$EncOrDec" ]; then
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 [ "$foo"=="$bar" ] 在 bash 中总是 true ? [复制] 的相关文章

  • 如何检测脚本是否正在被获取

    我有一个脚本 我不希望它调用exit如果它正在被采购 我想检查一下是否 0 bash但是如果脚本源自另一个脚本 或者用户从不同的 shell 获取它 例如ksh 有没有可靠的方法来检测脚本是否来源 稳健的解决方案bash ksh zsh 包
  • 以受限用户身份运行 monit 并使其监视需要 root 权限的进程

    我有一个用 Ruby 编写的特定脚本 需要 root 权限 大多数其他进程不需要它 因此很容易在 Monit 中设置 不是这个 服务器需要监听386 这个端口只有root可用 我不会详细说明原因 因为 1 我不是一个低级的人 2 到目前为止
  • 如何将后台作业的输出分配给 bash 变量?

    我想在 bash 中运行后台作业并将其结果分配给一个变量 我不喜欢使用临时文件 并且希望同时运行多个类似的后台任务 root root var echo hello world root root echo var hello world
  • 如何让 STDOUT 和 STDERR 都转到终端和日志文件?

    我有一个脚本 将由非技术用户交互式运行 该脚本将状态更新写入 STDOUT 以便用户可以确定脚本运行正常 我希望将Stdout和STDERR重定向到终端 以便用户可以看到脚本正在工作 并查看是否存在问题 我还希望将两个流都重定向到日志文件
  • 如何从 mysqldump 中删除表

    如何删除 mysqldump 中包含大量表的一个大表的输出 我有一个 6 GB 大的数据库转储 但其中 90 只是一个日志记录表 cache entries 我的备份中不再需要它 如何轻松删除转储中描述大型日志记录表的部分 我找到了这个 h
  • bash:清理三个文件的外连接,保留文件成员资格

    考虑以下三个文件 其标题位于第一行 file1 id name in1 1 jon 1 2 sue 1 file2 id name in2 2 sue 1 3 bob 1 file3 id name in3 2 sue 1 3 adam 1
  • 用于编辑 /etc/sudoers 文件的正则表达式模式

    我想删除 etc sudoers 文件中的 uncommnet 轮组 那么我应该使用什么正则表达式模式 cat etc sudoers Allows members of the sys group to run networking so
  • 使用 awk 解析日志文件

    我尝试使用以下代码解析日志文件 if line match then awk 2 vFiler echo vFiler 解释 有一些行以这样的模式开头 或 vol 后跟名称 我想找到所有以 或 vol 并将后面的字符串设置为等于变量 但我真
  • 带有存储在文件中的通配符的 grep

    我希望 grep 通过读取需要从文本文件中过滤掉的内容来过滤掉行 这是我给 grep 的内容 它存储在foo txt Users 1337 X Users 1337 R Users 1337 W 这是它应该过滤的内容 它存储在bar txt
  • 在 BASH 脚本中使用字符串作为变量名

    我有以下内容 bin sh n fred bob f n echo f 我需要在替换后执行底线 echo n 有办法做到这一点吗 我刚刚得到 test sh line 8 f bad substitution 在我这边 您可以像这样使用数组
  • 如何退出bash中的所有调用脚本?

    假设我有以下脚本 a sh echo in a if test 1 ne 2 then echo oops exit 1 fi b sh echo in b a sh echo in b 2 运行 b sh 时 如果 a sh 退出 我希望
  • 忽略 sed 查找和替换命令中的斜杠

    我正在尝试在终端中使用 sed 进行查找和替换 在 apache 配置文件中 我尝试替换 DocumentRoot var www with DocumentRoot var www mysite com public html 从命令行
  • 比较linux中的两个未排序列表,列出第二个文件中的唯一项

    我有 2 个包含号码列表 电话号码 的文件 我正在寻找一种列出第二个文件中第一个文件中不存在的数字的方法 我尝试过各种方法 comm getting some weird sorting errors fgrep v x f second
  • Docker exec linux 终端创建别名

    我有一个正在运行且独立的容器 我想在附加到该容器之前创建一个命令别名 当我连接到容器并输入 alias bar foo 创建别名 并可以通过以下方式检查 alias command 但如果我想做同样的事情码头执行者命令即这样 docker
  • 用于获取特定用户 ID 和进程数的 Bash 脚本

    我需要 bash 脚本来计算特定用户或所有用户的进程 我们可以输入 0 1 或更多参数 例如 myScript sh root deamon 应该像这样执行 root 92 deamon 8 2 users has total proces
  • Bash 的源命令无法处理从互联网上卷曲的文件

    我正在尝试使用curl从互联网获取脚本文件 如下所示 source lt curl url echo done 我看到的是 完成 得到了回响before卷曲甚至开始下载文件 这是实际的命令和输出 bash 3 2 source lt cur
  • 将 bash 提示符下的当前命令复制到剪贴板

    我想要一个快速的键盘命令序列 将 bash 提示符处的当前命令复制到剪贴板 例如 要将最后一个 bash 命令复制到剪贴板 我会按 up some command sequence 复制它 或者 例如 要在 bash 历史记录中搜索命令 我
  • 使用 sed 将反斜杠替换为斜杠[重复]

    这个问题在这里已经有答案了 我需要更换 with 我有一个文件 其中包含 test test2 test3 test4 I tried VRS Ruta cat ruta lst sed s g sed s g output test te
  • 如何运行 bash 压缩脚本?

    有没有一种方法可以直接运行带有 参数 的压缩bash脚本 而无需将其解压缩到文件中 然后运行解压缩的文件 例如 我需要使用一些给定的参数执行 setup mysql gzip 压缩脚本 n wordpress locahost 而不先解压缩
  • EULA 接受 Bash 脚本

    我有一个尝试安装垃圾箱的脚本 除了 bin 在 more 中打开 EULA 之外 一切正常 在脚本再次开始并自行完成安装之前 您必须手动 ctrl c 退出此 more 实例 因为这更多的是逃离 shell 所以脚本在打开后不知道要运行什么

随机推荐

  • Unpivot SQL 事物

    我有一些数据 例如 Chocolate Strawberies Oranges 2 3 1 4 2 4 我如何得到回来 Chocolate 2 Chocolate 4 Strawberies 3 Strawberies 2 Oranges
  • 动态 Linq + 实体框架:动态选择的日期时间修改

    我正在尝试找到一种方法 在进行 sql 分组之前将 UTC 时间移至本地 我正在使用 System Linq Dynamic 在这里管理https github com kahanu System Linq Dynamic 它非常适合进行动
  • Galaxy Nexus 上的 Toast 大小

    当我在应用程序中使用 toast 时 尺寸非常非常小 但当另一个应用程序显示吐司时 大小是正常的 如高级任务杀手 或短信 我需要做什么才能得到正常大小的吐司 我有 Galaxy Nexus ICS 4 0 1 我的应用程序使用 SDK AP
  • 获取状态 -1 而不是 401 Angularjs

    我正在尝试从服务器获取响应 该函数看起来是这样的 function getOverview var req method GET url base headers authorization Bearer GottenTokens getS
  • 将 MySQL 数据与易用性解耦

    假设一个简单的酒店预订数据库包含三个表 表 1 预订该表包含入住和退房日期以及一间或多间客房的参考信息和优惠券 如果适用 表 2 房间该表包含所有酒店房间的数据 包括每晚的价格和床位数量 表 3 优惠券该表保存了所有优惠券的数据 选项1 如
  • 如何避免“if”链?

    假设我有这个伪代码 bool conditionA executeStepA if conditionA bool conditionB executeStepB if conditionB bool conditionC executeS
  • Android静默更新apk,然后重新启动应用程序

    好吧 首先我想澄清一下 我并不是想达到任何可疑的目的 我们有自己的企业应用程序 仅适用于我们自己的硬件 我们不使用 Google Play 商店 手机也已root 我已经实现了我们自己的Apk更新机制 到目前为止 我已经使用下面的代码成功地
  • Pandas:使用最后可用的值填充缺失值

    我有一个数据框如下 A B zDate 01 JAN 17 100 200 02 JAN 17 111 203 03 JAN 17 NaN 202 04 JAN 17 109 205 05 JAN 17 101 211 06 JAN 17
  • 解决 Solaris 上未声明的 -llapack 依赖性问题

    我已经发布了一个R封装在CRAN这取决于一些成功编译RcppArmadillo代码 该包构建正确 并且在我尝试过的所有测试系统上没有任何注释 如果有兴趣 CRAN 在这里评论 但是 CRAN 检查失败solaris sparc并且无法加载依
  • NSOutlineView 更改披露图像

    在我的大纲视图中 我正在添加自定义单元格 为了绘制自定义单元格 我正在引用 Cocoa 文档中提供的示例代码 http www martinkahr com 2007 05 04 nscell image and text sample 我
  • 无法链接最小的 Lua 程序

    我有以下简单的 Lua 程序 是从 Programming In Lua 一书中复制的 include
  • 如何在 python 中将现有的 google chrome 配置文件与 selenium chrome webdriver 一起使用?

    我需要加载我完整的现有 google chrome 配置文件以及我登录 google 和网站帐户的所有 chrome 扩展 我正在努力处理这段代码 某处存在语法错误 chrome options Options chrome options
  • Flash 未在 Rails 中的同一视图中显示

    成功更新对象后 我需要在同一视图 编辑 中显示 Flash 如果我重定向到另一个操作 一切正常 但是当我需要留在 edit 时 不起作用 有人可以向我解释一下我的错误是什么吗 谢谢 我的控制器中有以下代码片段 def edit settin
  • 多重计数和分组依据

    我有一个与此类似的数据库 MySQL 5 5 ID Name Page Visited Date 1 Tim Page A 11 2 2000 1 Tim Page B 11 3 2000 1 Tim Page B 11 3 2000 2
  • 用于在 Excel 中使用正则表达式的通用 UDF

    我需要每周解析和总结数千行文本 Excel 通配符不够灵活 我想删除粘贴到 Notepad 进行处理或输入脚本的额外步骤 这是我想出的工具 它们仍然有点慢 在公司笔记本电脑上可能每秒 3000 行 但它们很方便 RXMatch 返回第一个匹
  • setInterval 和更新值 AngularJS

    基于更改变量的值 我希望在 html 中显示错误消息 我从我的角度代码调用一个 api 如果它返回错误 我设置了一个 setInterval 函数 该函数应该将 bookingData tracking id 更新为 false 然后在 h
  • 使用什么来创建快速且简单的安装文件?

    我正在考虑帮助一个开源游戏项目创建他们的安装文件 该游戏目前大小约为 300 MB 打包为 zip 文件 解压后即可直接玩 该 zip 文件包含适用于 Windows Mac 和 Linux 的单独可执行文件以及在所有 3 个平台上使用的压
  • 从缓冲区创建的 NSData 创建 UIImage 返回 nil?

    我正在尝试变暗UIImage通过抓住CGImage 获取每个像素并减去0xa然后将每个像素保存到新的缓冲区中 但是当我尝试将该缓冲区作为图像加载回来时 函数 创建 CGImage 返回nil 这意味着我一定在我的代码中做错了什么 我不会感到
  • 使用 xslt 比较两个 xml 文件

    我有两个 XML 文件 文件 a
  • 为什么 [ "$foo"=="$bar" ] 在 bash 中总是 true ? [复制]

    这个问题在这里已经有答案了 我尝试将用户输入与字符串进行比较 这是我的代码 Encode Encode Decode Decode printf Enter name of file read fileName printf Encode