小编Cha*_*ffy的帖子

在XQuery中更新计数器

我想在xquery中创建一个计数器.我最初的尝试看起来如下:

let $count := 0
for $prod in $collection
let $count := $count + 1
return 
<counter>{$count }</counter>
Run Code Online (Sandbox Code Playgroud)

预期结果:

<counter>1</counter>
<counter>2</counter>  
<counter>3</counter>
Run Code Online (Sandbox Code Playgroud)

实际结果:

<counter>1</counter>
<counter>1</counter>  
<counter>1</counter>
Run Code Online (Sandbox Code Playgroud)

$count变量或者未能更新或处于复位状态.为什么我不能重新分配现有变量?什么是获得理想结果的更好方法?

xquery marklogic

13
推荐指数
5
解决办法
1万
查看次数

将标准输出重定向到文件时,Python 脚本不写入任何输出

我在树莓派上启动时运行了一个 python 脚本(工作正常),我想将输出附加到现有的文本文件中。我在我的 /etc/rc.local 文件中得到了这个代码(我用 cron 尝试了同样的方法,但由于某种原因它甚至没有启动脚本)。

python3 /home/pi/script.py >> /home/pi/log.txt 
Run Code Online (Sandbox Code Playgroud)

不幸的是,无论我尝试什么,日志文件总是空的,除非我直接运行相同的命令并通过按 ctrl+c 而不是 ctrl+z 中止脚本。似乎脚本在向文件写入任何内容之前必须以正确的方式关闭,但我希望它逐渐保存每个输出的文件。

编辑:我解决了。显然,只有在填充一定数量的内存或脚本完成后才会写入文件是正常的(这在我的情况下从未发生过,因为我总是在这之前重新启动 pi)。添加标志 -u 以立即写入文件。

python3 -u /home/pi/script.py >> /home/pi/log.txt 
Run Code Online (Sandbox Code Playgroud)

bash python-3.x raspberry-pi3

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

将部分匹配模式保存到变量

我想提取一个匹配模式的子字符串并将其保存到文件中.示例字符串:

Apr 12 19:24:17 PC_NMG kernel: sd 11:0:0:0: [sdf] Attached SCSI removable disk
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我想在括号之间提取部分[sdf].

我试图grep -e '[$subtext]'将括号中的文本保存到变量.当然它不起作用,但我正在寻找类似于此的方法.在这样的正则表达式中包含变量会非常优雅.我能做什么最好的?

谢谢!

regex variables bash extraction

12
推荐指数
2
解决办法
3万
查看次数

CVE-2014-7169如何运作?测试代码的细分

有一个bash版本已被修补shellshock

$ bash --version
GNU bash, version 3.2.52(1)-release (x86_64-apple-darwin12)
Copyright (C) 2007 Free Software Foundation, Inc.

$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
this is a test
Run Code Online (Sandbox Code Playgroud)

另一个类似的漏洞利用仍然有效,并已被分配到CVE-2014-7169

$ env X='() { (a)=>\' bash -c "echo date"; cat echo
bash: X: line 1: syntax error near unexpected token `='
bash: X: line 1: `'
bash: error …
Run Code Online (Sandbox Code Playgroud)

bash exploit shellshock-bash-bug

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

最近 react-native 版本中的“无法解析模块”debuggerWorker 错误

我让我的项目与最新的 RN 版本保持同步。最近这个错误似乎越来越多。

Error: Unable to resolve module `./debugger-ui/debuggerWorker.d9da4ed7` from ``:

None of these files exist:
  * debugger-ui/debuggerWorker.d9da4ed7(.native|.native.js|.js|.native.json|.json|.native.ts|.ts|.native.tsx|.tsx)
Run Code Online (Sandbox Code Playgroud)

在尝试调试问题时真的很困难,并且调试器语句不会注意到并且错误不会报告给控制台输出所在的浏览器选项卡。

我已经试过擦了node_modules。这是一个已知问题,有可用的具体修复吗?

react-native

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

xslt - 从xml文件中选择属性值

我有一个XML文件:

<BatchTable>
  <UUThref SocketIndex='0 - CCM'
           UUTResult='Passed'
           URL='C:\OverrideCallbacks_BatchReport[4 16 2012][4 14 18 PM].xml'
           FileName='OverrideCallbacks_BatchReport[4 16 2012][4 14 18 PM].xml'
           ECAFailCount='1'
           Version='StationPartNumber=55555StationSerialNumber=2222TPSPartNumber=1234'/>
</BatchTable>
Run Code Online (Sandbox Code Playgroud)

为了在xsl文件中选择版本,我有:

<xsl:value-of select="BatchTable/UUThref/[@Version]"/>
Run Code Online (Sandbox Code Playgroud)

这不会返回任何值.我究竟做错了什么?

xml xslt

11
推荐指数
1
解决办法
4万
查看次数

- >/ - >>管道中的条件元素

给定->>像这样的管道:

(defn my-fn []
  (->> (get-data)
       (do-foo)
       (do-bar)
       (do-baz)))
Run Code Online (Sandbox Code Playgroud)

我希望各个阶段都有条件.

想到的第一种写作方式就是这样:

(defn my-fn [{:keys [foo bar baz]}]
  (->> (get-data)
       (if foo (do-foo) identity)
       (if bar (do-bar) identity)
       (if baz (do-baz) identity))
Run Code Online (Sandbox Code Playgroud)

但是,当->>宏试图插入if表单时,这不仅在性能方面看起来很不幸(有noop identity调用),而且实际上无法编译.

什么是合适的,合理干燥的写作方式是什么?

clojure

11
推荐指数
5
解决办法
2239
查看次数

将字符串转换为参数时,Bash不解析引号

这是我的问题.在bash 3中:

$ test='One "This is two" Three'
$ set -- $test
$ echo $2
"This
Run Code Online (Sandbox Code Playgroud)

如何获得的bash了解行情,并返回$ 2作为This is two和不"This?不幸的是,我不能改变test这个例子中调用的变量的构造.

string bash arguments spaces quoting

11
推荐指数
2
解决办法
2981
查看次数

为什么没有正确设置此shell变量

我的linux机器上有一个特定的用户,以下命令

json='[{"date":"2016"}]' && echo ${json}
Run Code Online (Sandbox Code Playgroud)

输出1而不是[{"date":"2016"}].

我的机器上的所有其他用户都能正常工作.当我将命令更改为(省略1)

json='[{"date":"206"}]' && echo ${json}
Run Code Online (Sandbox Code Playgroud)

它的工作正确.

我正在拼命寻找导致这种效果的用户的配置差异.但说实话,我不知道.

那里有任何提示吗?

linux bash

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

如何将bash视为未定义的变量作为错误?

请注意:关于如何在此站点上测试单个shell变量有很多问题.这个问题是关于测试任何未定义变量的脚本.

您可以在bash中使用未定义的变量,而不会在执行时看到任何错误:

#!/bin/bash

echo ${UNDEF_FILE}
ls -l ${UNDEF_FILE}

exit 0
Run Code Online (Sandbox Code Playgroud)

我发现这很容易出错.如果我想在大脚本中更改变量的名称,或者删除该变量,则所有先前过时的引用都将导致脚本中的错误.有时这对于调试来说并不明显,或者你发现它为时已晚.

为什么允许这样做?有没有办法标记未定义的变量?

linux bash shell

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