在 bash 程序中获取“[:=:预期一元运算符”[重复]

2023-12-02

我一直在开发一个示例 bash 程序来练习 bash 脚本编写,但每当我尝试使用正确的变量运行它时,它都会输出“[:=:预期的一元运算符”并退出。

#! /bin/bash
clear
i=""
P="PASSWORD"
echo "Please enter your password"
while [ $i = "PASSWORD" ]
do
  read $i
done

如果 $i 为空,则由于参数不足而出现语法错误 [ = "PASSWORD" ]

  1. 您可以使用 bash 选项 [[ $i = "PASSWORD" ]] 但它是 bash 操作符,它可能与旧 shell 不兼容

  2. 您可以将变量放入配额中,例如 [ "$i" = "PASSWORD" ] 这是首选的事情,如果您的变量包含空格或 shell 扩展标记(如 *、?、[1..9]),您还将解决问题

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

在 bash 程序中获取“[:=:预期一元运算符”[重复] 的相关文章

  • C - printf("\a") 不会发出警报[重复]

    这个问题在这里已经有答案了 这是我的 C 代码 include
  • 如何使用c在Linux中获取当前时间戳(以纳秒为单位)

    我知道我们可以使用clock gettime CLOCK MONOTONIC 我尝试问的问题是 如果我需要以纳秒为单位的时间 从时代来看 这将是一个巨大的数字 例如 自纪元以来的秒数是13438461673 so 13438461673 1
  • 移动除一个文件之外的所有文件

    如何移动除一个文件之外的所有文件 我正在寻找类似的东西 mv Linux Old Tux png Linux New 我将旧的东西移动到新的东西文件夹中 除了Tux png 符号代表否定 有一些工具可以完成这项工作吗 如果您使用 bash
  • CMake的execute_process和任意shell脚本

    CMake s execute processcommand 似乎只让你执行一个进程 而不是你可以输入命令 shell 的任意行 问题是 我想使用管道 文件描述符重定向等 但这似乎不可能 另一种选择对我来说会非常痛苦 我认为 我应该怎么办
  • 在詹金斯管道作业中将变量传递给bash脚本

    我有一个 Jenkins 管道作业 其中我使用名为 setup sh 的 bash 脚本配置我的环境 如下所示 bin bash export ARCH 1 echo architecture ARCH 在 Jenkins 管道脚本中 我使
  • 参数无效”设置键“net.core.somaxconn”

    我尝试设置Linux内核 编辑后 etc sysctl conf并执行sysctl p它显示错误 Invalid argument setting key net core somaxconn Linux 发行版 Ubuntu 12 04
  • Linux 是否允许从信号处理程序进行任何系统调用?

    我的理解是 一般来说 如果您从信号处理程序调用非异步信号安全函数 则行为是未定义的 但我听说 Linux 允许您安全地调用任何系统调用 这是真的 另外 SIGSEGV 处理程序的唯一可移植行为是中止或退出 但我知道如果返回 linux 实际
  • Python select() 行为很奇怪

    我在理解 select select 的行为时遇到一些困难 请考虑以下 Python 程序 def str to hex s def dig n if n gt 9 return chr 65 10 n else return chr 48
  • 使用 Bash 显示进度指示器(旋转器)[重复]

    这个问题在这里已经有答案了 使用仅 bash 的脚本 如何提供 bash 进度指示器 例如 当我从 bash 运行命令时 当该命令正在执行时 让用户知道某些事情仍在发生 在这个使用 SCP 的示例中 我演示了如何获取进程 ID pid 然后
  • 使用vim,如何快速刷新正在处理的网页?

    我已经使用 VIM 几个星期了 同时处理各种网络语言 我真的很喜欢它 我发现必须点击或单击浏览器并刷新页面才能看到代码更改的效果 这很麻烦 更烦人的是 因为我使用的是 Virtual Box 而且我倾向于在主机系统上处理 PDF 文件 因此
  • 强制 shell 在 SunGrid 引擎中使用 conda 变量中的 python [重复]

    这个问题在这里已经有答案了 我正在尝试在 SunGrid 引擎中执行 python 文件 并且从 anaconda3 环境变量中执行它 我的代码很简单 from future import print function import url
  • shell脚本响应按键

    我有一个 shell 脚本 本质上是这样的 while true do read r input if input a then echo hello world fi done 这一切都很好 但我刚刚意识到在这种情况下必须按 ENTER
  • top命令的CPU使用率计算

    我正在尝试使用 GNU coreutil top 的公式来计算 CPU 使用率的百分比 但 top 正在使用一些 half total 来计算百分比 即在百分比上添加 0 5 在top的utils c中 以下行 在 3 8 beta1 中
  • 删除所有出现的重复行

    如果我想删除某些字段重复的行 那么我使用 sort u k n n 但这仍然发生一件事 如果我想删除所有出现的重复项 有没有快速的 bash 或 awk 方法可以做到这一点 例如我有 1 apple 30 2 banana 21 3 app
  • VBA:如何从 MS Access 运行另一个应用程序

    我一直在试图解决这个问题 但似乎我在任何地方都找不到解决该问题的方法 这是第一部分 VBA Shell 命令始终返回 找不到文件 https stackoverflow com questions 10439024 vba shell co
  • Shell脚本通过curl调用API并处理响应

    我需要创建一个通过curl 调用我的登录API 的shell 脚本 该脚本应该能够存储和处理来自curl api 调用的响应 myscript sh bin bash echo Extract bearer token from curl
  • 错误:选项“Z”仅在夜间编译器上被接受[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在通过斯坦福操作系统课程 cs140e https web stanford edu class cs140e 其中一个问题是 有一个名
  • 在Linux上如何找到当前目录的所有直接子目录?

    在Linux上如何找到当前目录的所有直接子目录 最简单的方法是通过编写来利用 shell 通配功能echo 如果你喜欢使用ls 例如要应用格式 排序选项 请使其ls d 解释 斜杠确保仅考虑目录 而不考虑文件 Option d 列出目录本身
  • Bash:将输出传输到后台进程?

    我想将一个进程放入后台 然后多次将数据传递给它 例如 cat The command I want to write into cat pid Getting the process id of the cat process echo h
  • 为什么在setsid()之前fork()

    Why fork before setsid 守护进程 基本上 如果我想将一个进程与其控制终端分离并使其成为进程组领导者 我使用setsid 之前没有分叉就这样做是行不通的 Why 首先 setsid 将使您的进程成为进程组的领导者 但它也

随机推荐

  • 如何从 javascript 函数调用方法后面的代码?

    我有一个 javascript 函数 用于 aspx 页面中的 HTML img 点击事件 其代码隐藏页面中还有一个服务器方法 现在我想仅当用户单击 HTML img 时才从 javascript 函数调用服务器方法而不带任何参数 C 代码
  • 隐藏 ViewController 后实例化按钮不起作用

    我刚刚发现这个非常奇怪的问题 我有这个button这是触发这个function objc func vergessenTapped let forgotPasswordVC self storyboard instantiateViewCo
  • 查找具有 n 个元素的表的最佳列和行大小以及其比例的给定范围

    我正在寻找一种从 n 个元素创建表格的最佳方法 以便理想情况下没有空单元格 但同时表格尺寸列 行的比例变得尽可能接近 1 当然 如果 n 是平方数 那么就很容易 cols rows sqrt n 如果 n 是素数 那么很明显会有空单元格 所
  • 在 Github 操作中获取修改后的文件

    我的存储库中有 2 个 Github Actions 工作流程 其中一个步骤需要获取 PR 中已修改的所有文件 删除的文件除外 我在第一个中使用这个 on pull request branches main jobs get files
  • Java 方法有排序约定吗? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我有一个大型类 大约 40 个方法 它是我将作为课程作业提交的包的一部分 目前 这些方法在公用 私有等方面相当混乱 我想以合理的方式对它们进行排序 有这样做的标准方法吗 例如 通
  • 带有动态类名的 PHP 命名空间

    想知道其他人在使用 PHP 5 3 命名空间类的新功能时是否遇到过这个问题 我正在生成一个动态类调用 利用一个单独的类来定义应用程序中的用户类型 基本上 类定义器采用类型的整数表示形式并解释它们 返回一个包含类名的字符串 该类名将被称为该用
  • 将 git 子模块中的更改推送到主模块,但不推送到子模块

    我有一个 git 项目 A 它使用来自 Github 的子模块 B 我无法推送到 Github 项目 B 因为它不是我的 我想在B中做一个小的改变 不推送到远程B 因为我无法推送 但应该推送到A 所以当有人使用A时 他应该能够看到我的更改
  • Python递归函数错误:“超出最大递归深度”[重复]

    这个问题在这里已经有答案了 我使用以下代码解决了 Project Euler 的问题 10 该代码通过暴力破解 def isPrime n for x in range 2 int n 0 5 1 if n x 0 return False
  • “缩进中制表符和空格的使用不一致”[重复]

    这个问题在这里已经有答案了 我正在尝试在 Python 3 2 中创建一个应用程序 并且一直使用制表符进行缩进 但即使是编辑器也会将其中一些更改为空格 然后当我尝试运行时打印出 缩进中制表符和空格的使用不一致 该程序 如何将空格改为制表符
  • 如何在spring data @Query中使用属性

    我无法设法将 application yml 中的属性注入到 spring data Query 中 以下结果会导致 EL1008E 错误 public interface MyRepository extends JpaRepositor
  • 如何通过PHP和Linux使用pdo连接mssql?

    我正在尝试使用以下代码建立新的 PDO 连接 new PDO mssql driver Server serverName Database databaseName username password array PDO ATTR PER
  • 组合框问题:无法绑定到新值成员

    我创建了一个作为用户控件的组合框 它实际上由标签 组合框和文本框组成 我正在尝试将数据集绑定到组合框数据源 但我不断收到有关 ValueMember Display 成员的错误消息 Cannot bind to the new displa
  • 如何在屏幕底部添加工具栏?

    我是新来的 我需要你的帮助 因为我不知道一些事情 例如 我为我的应用程序放置了一个工具栏 而不是在屏幕顶部放置操作栏 现在我想在底部放置一个工具栏 那么我该怎么做呢 工具栏是正确的方式 并且它兼容android 4 0 谢谢您的回答 编辑
  • 表示任何双精度值所需的最大字符长度是多少?

    当我将无符号 8 位 int 转换为字符串时 我知道结果始终最多为 3 个字符 对于 255 而对于有符号 8 位 int 我们需要 4 个字符 例如 128 现在我真正想知道的是浮点值也是一样的 将任何 双精度 或 浮点 值表示为字符串所
  • openssl ssl 加密

    我想讨论一下openssl的写入和读取方法 假设我有一个如下所示的数据结构 my header PAYLOAD not encrypted encrypted I think the proper al
  • itextsharp:如何找到矩形的填充颜色

    我按照 ItextSharp 示例获取图形结构 使用代码获取矩形坐标 class VectorGraphicsListener IExtRenderListener public void ModifyPath PathConstructi
  • 使用“Codable”设置属性值无法通过继承起作用

    我无法设置b子类中的属性 它是继承自的父类Codable 这似乎运作良好 我觉得我错过了一些非常明显的东西 但我很难只见树木 下面是我的问题的游乐场示例 b尽管设置为 但仍为 010 传入的是子类 但可以设置父类属性 非常奇怪 class
  • 暂停命令行 python 程序的最简单方法?

    假设我有一个 python 程序 它会输出文本行 例如 while 1 print This is a line 允许用户按下键盘上的某个键来暂停循环 然后在再次按下时恢复 最简单的方法是什么 但如果没有按下任何按钮 它应该自动继续 我希望
  • 无法在 VSCode 中运行 Jupyter Notebook - Vanilla Python、Windows 10

    我的 Windows 10 计算机上安装了现有的普通 Python 但我不想重新安装 Anaconda 当尝试在 vscode 中运行 ipynb 文件中的代码时 出现以下错误 Error Jupyter cannot be started
  • 在 bash 程序中获取“[:=:预期一元运算符”[重复]

    这个问题在这里已经有答案了 我一直在开发一个示例 bash 程序来练习 bash 脚本编写 但每当我尝试使用正确的变量运行它时 它都会输出 预期的一元运算符 并退出 bin bash clear i P PASSWORD echo Plea