首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有多个条件的Bash脚本if语句

带有多个条件的Bash脚本if语句
EN

Stack Overflow用户
提问于 2015-03-09 15:42:41
回答 1查看 599关注 0票数 1

我正试图为一个流浪的傀儡开发env创建一个简单的bash shell脚本提供程序,它检查/tmp/pu偶最新模块是否存在,并且是在特定的时间框架内创建的,准确地说是14天。我正努力用这个简单的脚本来取得进展。任何帮助都很感激。

代码语言:javascript
复制
#!/bin/bash

if [[ ! -f /tmp/.puppet-modules-up-to-date ]] && [[ ! (find /tmp/.puppet-modules-up-to-date -mtime -14 | grep puppet) ]]; then

    puppet_dir=/etc/puppet

    echo 'Copying Puppetfile into place'
    cp /vagrant/puppet/Puppetfile $puppet_dir

    cd $puppet_dir

    echo 'Installing puppet modules into place'
    librarian-puppet install

    echo 'Updating previously installed puppet modules'
    librarian-puppet update 

    touch /tmp/.puppet-modules-up-to-date
fi

只需给出以下错误:

代码语言:javascript
复制
==> default: /tmp/vagrant-shell: line 3: conditional binary operator expected
==> default: /tmp/vagrant-shell: line 3: expected `)'
==> default: /tmp/vagrant-shell: line 3: syntax error near `/tmp/.puppet-modules-up-to-date'
==> default: /tmp/vagrant-shell: line 3: `if [[ ! -f /tmp/.puppet-modules-up-to-date ]] && [[ ! (find /tmp/.puppet-modules-up-to-date -mtime -14 | grep puppet) ]]; then'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-09 15:46:21

问题似乎就在这里:

代码语言:javascript
复制
[[ ! (find /tmp/.puppet-modules-up-to-date -mtime -14 | grep puppet) ]];

因为这并不是真正捕获find/grep的输出,所以可以使用$(find...)命令来完成。

但是,您可以使用grep -q更好地处理这种情况。

代码语言:javascript
复制
find /tmp/.puppet-modules-up-to-date -mtime -14 | grep -vq puppet
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28946073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档