【问题标题】:kubernetes job does not terminatekubernetes 作业不会终止
【发布时间】:2021-06-23 07:34:28
【问题描述】:

我有下一个 Kubernetes cronjob 规范:

          containers:
          - args:
            - -c
            - |
              export NLS_LANG=AMERICAN_AMERICA.UTF8 ;
              echo "Exporting addresses" ;
              sqlplus bta/$ORACLE_PASSWORD@//10.203.0.34/bta @adm_address_export.sql > /dev/null ;
              if [[ ! -f address.tsv ]]; echo 'File "address.tsv" is not there, aborting.'; echo $? ; then exit 0; fi ;
              echo "Ready to import addresses" ;

如果 address.tsv 之前不是由命令创建的,我希望此作业失败。但由于某种原因,如果文件存在,它也会失败。

我在这里做错了什么?

【问题讨论】:

  • then 应该紧跟在 if [[..]] 之后
  • 在你的 shell 代码中添加一个 shebang 并粘贴到 shellcheck,net
  • @RamanSailopal 您的回答有效,谢谢!
  • @Jetchisel 感谢您的帮助。那只检查语法,看起来没问题。
  • help if 应该打印if 语句的语法。

标签: bash kubernetes kubernetes-cronjob


【解决方案1】:

if 语句是不正确的,因为 then 需要遵循 if [[ ... ]] 等等:

if [[ ! -f address.tsv ]]; then echo 'File "address.tsv" is not there, aborting.'; echo $? ; exit 0; fi

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-19
    • 1970-01-01
    • 2017-04-22
    • 2019-09-13
    • 2019-06-10
    • 1970-01-01
    • 2021-01-17
    相关资源
    最近更新 更多