Shell脚本中的错误:预期为整数表达式

时间:2018-07-12 22:09:07

标签: bash shell

我正在研究shell脚本。我开始学习如何处理更复杂的if语句。下面的代码有什么问题?我在这里在stackoverflow中阅读了其他类似的问题,但是我无法解决我的问题。现在我正在验证第一个,第二个或第三个参数是否为空。将来我会假装基于正则表达式或类似的东西进行验证。
谢谢!

代码(第9行):

const zip = new JSZip();
zip.folder('FolderA/FolderB/FolderC').file('FILE.TXT', new File([contentString], 'TEMP.TXT', { type: 'text/plain' }));
zip.generateAsync({ type: 'blob' })
  .then(function (content) {
    saveAs(content, 'ZipFile.ZIP');
  });
  

第9行:[::预期为整数表达式
第9行:[::整数   期望的表达式
第9行:[::期望的整数表达式

2 个答案:

答案 0 :(得分:2)

-eq对两个数字进行算术比较。使用=进行字符串比较。或者更好的方法是使用[[==

[[ $1 == "" ]]
[ "$1" = "" ]

您还可以使用-z-n直接测试值是空还是非空。

[[ -n $value ]]    # [[ $value != "" ]]
[[ -z $value ]]    # [[ $value == "" ]]

答案 1 :(得分:-1)

对于更现代/更复杂的运算符,请使用[[]]。这是一种bashism,所以要当心。

相关问题