문자열 값을 비교하는 동안 여러 또는 조건을 추가하고 싶습니다. 단일 문자열 값을 사용하면 다음 코드가 작동합니다.
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
이것이 실제로 쉘이라면 오류가 너무 많아서 어디서부터 시작해야 할지 알기 어렵습니다.
if prname == 'CheckForUpdate':
명령은 쉘에서 prname
두 개의 인수와 함께 호출되므로 이름 ==
이 CheckForUpdate:
지정된 명령을 찾을 수 없다는 오류가 발생할 수 있습니다 prname
.
if [ prname == 'CheckForUpdate' ] || [ prname == 'Result' ]
더 좋지만 prname
문자열을 두 개의 string 과 비교 CheckForUpdate
하므로 Result
항상 false입니다(CheckForUpdate도 Result도 one으로 시작하지 않음 p
).
settingsdata['autocompare'] = True
=
대부분의 쉘 구현에서 주변 공백은 구문 오류가 됩니다.아니요작업.