我想在比较字符串值时添加多个或条件,与单个字符串值我的以下代码正在运行
prname ="$projname"
if prname == 'CheckForUpdate':
settingsdata['autocompare'] = True
settingsdata['autorecords'] = True
但是当我添加多个 OR 条件时,它会抛出以下语法错误:
prname ="$projname"
if [prname == 'CheckForUpdate'] || [prname == 'Result'];
then
settingsdata['autocompare'] = True
settingsdata['autorecords'] = True
获取错误:
if [ prname == 'CheckForUpdate' ] || [ prname == 'Result' ]
^
SyntaxError: invalid syntax
任何人都知道为什么会这样,我正在使用#!/bin/sh?
答案1
如果这确实是 shell,那么错误太多,很难知道从哪里开始。
if prname == 'CheckForUpdate':
在 shell 中将调用prname
带有两个参数的命令==
,CheckForUpdate:
因此可能会给您一个错误,指出它找不到名为 的命令prname
。
if [ prname == 'CheckForUpdate' ] || [ prname == 'Result' ]
更好,但它将字符串prname
与两个字符串进行比较CheckForUpdate
,Result
因此始终为 false(CheckForUpdate 和 Result 都不以 开头p
)。
settingsdata['autocompare'] = True
=
在大多数 shell 实现中,周围的空格将是一个语法错误,它是不是一项任务。