小编JP *_*Lew的帖子

for ...使用数组内的对象进行迭代和解构

根据Mozilla文档,这里是如何在for of循环中使用解构:

var people = [
  {
    name: 'Mike Smith',
    family: {
      mother: 'Jane Smith',
      father: 'Harry Smith',
      sister: 'Samantha Smith'
    },
    age: 35
  },
  {
    name: 'Tom Jones',
    family: {
      mother: 'Norah Jones',
      father: 'Richard Jones',
      brother: 'Howard Jones'
    },
    age: 25
  }
];

for (var {name: n, family: {father: f}} of people) {
  console.log('Name: ' + n + ', Father: ' + f);
}

// "Name: Mike Smith, Father: Harry Smith"
// "Name: Tom …
Run Code Online (Sandbox Code Playgroud)

javascript destructuring ecmascript-6

2
推荐指数
1
解决办法
95
查看次数

当解释器位于非标准位置时,如何解决“错误解释器”错误?

所以我的第一个问题是我在 GoDaddy 上托管。

第二个问题是,当我尝试通过 SSH 执行以下 PHP 脚本时...

./searchreplacedb2cli.php -h hostname -u username -d databasename -p 'password'
Run Code Online (Sandbox Code Playgroud)

...我得到一个/usr/bin/php: bad interpreter: No such file or directory错误。这是因为在共享主机上,没有/usr/bin/php. 相反,我想要的 php cli 位于此处:

/usr/local/php5_3/bin/php
Run Code Online (Sandbox Code Playgroud)

因此,我手动将脚本中的 shebang 声明更改为...

#!/usr/local/php5_3/bin/php -q
Run Code Online (Sandbox Code Playgroud)

...果然,它有效。

但是,我不想手动编辑此脚本。我正在寻找一种以编程方式规避此问题的方法。我使用此脚本即时部署 Wordpress 站点。wget每次使用它时,我都会从 git 存储库中获取它。此外,它会定期从 bash 脚本中删除和安装,因此不能每次都在文本编辑器中修改它。

有没有办法将备用解释器传递给 bash 命令?比如,“如果你没有找到默认的解释器,就用这个代替”。

我试过这个,但它不起作用:

./searchreplacedb2cli.php -h hostname -u username -d databasename -p 'password' | /usr/local/php5_3/bin/php
Run Code Online (Sandbox Code Playgroud)

而且因为它是共享主机,所以我没有将 /usr/bin/php 符号链接到正确位置的权限。

我的下一个想法是通过 bash 使用sed替换命令编辑 php 脚本的第 1 行。我想我会先在这里询问替代方案。谢谢。

php wordpress ssh bash shell

1
推荐指数
1
解决办法
7718
查看次数

Firebase Functions 1.0.0迁移:带有Google Service Account凭据的自定义initializeApp()出现问题

我刚刚从beta(v0.9.1)更新到v1.0.0,并遇到了一些初始化问题。根据迁移指南functions.config().firebase现在已弃用。这是我之前的初始化:

const serviceAccount = require('../service-account.json')

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: functions.config().firebase.databaseURL,
  storageBucket: functions.config().firebase.storageBucket,
  projectId: functions.config().firebase.projectId,
})
Run Code Online (Sandbox Code Playgroud)

升级后,我将其更改为以下内容:

admin.initializeApp()
Run Code Online (Sandbox Code Playgroud)

起初,这似乎工作正常,可以识别databaseURL和storageBucket。但是,关于新缺席的credential领域存在问题。要访问Google Cloud Storage,必须填写该字段。我@google-cloud/storage像这样访问我的应用程序中的API:

import { Bucket, File } from '@google-cloud/storage'
import * as admin from 'firebase-admin'

bucket: Bucket = admin.storage().bucket()

    this.bucket
      .upload(filepath, {
        destination: uploadPath,
      })
      .then((fileTuple: [File]) => {
        // after uploading, save a reference to the audio file in the DB
        fileTuple[0]
          .getSignedUrl({ action: 'read', expires: '03-17-2025' })
          .then((url: [string]) => {
            dbRef.child('audioFiles').push(url[0]) …
Run Code Online (Sandbox Code Playgroud)

google-cloud-storage firebase google-cloud-functions firebase-admin

1
推荐指数
1
解决办法
733
查看次数

在UNIX中,是否可以通过http"捕获"文件?

这是我想要做的:

cat https://raw.githubusercontent.com/jplew/SyncDB/master/syncdb
Run Code Online (Sandbox Code Playgroud)

这给出了"没有这样的文件或目录"错误,因为cat显然无法通过HTTP获取远程文件.还有另一种方法来实现这一目标吗?

更大的图片

我正在尝试为我的bash脚本编写自动更新功能.它需要确定脚本的本地版本是否与最新的公共版本不同.如果存在差异,则应下载新版本.

我想我可以使用以下方法测试:

diff [local file] [remote file]
diff syncdb https://raw.githubusercontent.com/jplew/SyncDB/master/syncdb
Run Code Online (Sandbox Code Playgroud)

但是这给出了与上面相同的问题:"没有这样的文件或目录".所以我的第二个想法是试试这个:

cat https://raw.githubusercontent.com/jplew/SyncDB/master/syncdb | diff - syncdb
Run Code Online (Sandbox Code Playgroud)

由于此脚本由公共使用,因此它们没有对公共github存储库的SSH访问权限.其次,我不想用来git diff比较文件,因为这需要它们已经git安装,弄乱了正确的文件位置/结构,并且还要求他们克隆了我的仓库,我更愿意避免这些需求.

我知道我可以使用下载原始远程文件curlwget,然后diff他们,但是这违背检查,看看是否有下载前的任何变化的整个目的.

谢谢阅读!

unix bash cat

0
推荐指数
1
解决办法
472
查看次数