小编tri*_*eee的帖子

如何等待脚本生成的所有子(和孙等)进程

语境:

用户为我提供了自定义脚本来运行.这些脚本可以是任何类型的脚本,以启动多个GUI程序,后端服务.我无法控制脚本的编写方式.这些脚本可以是阻塞类型,即执行等待直到所有子进程(按顺序运行的程序)退出

#exaple of blocking script
echo "START"
first_program 
second_program 
echo "DONE"
Run Code Online (Sandbox Code Playgroud)

或非阻塞类型,即在后台派生子进程并退出类似的东西

#example of non-blocking script
echo "START"
first_program &
second_program &
echo "DONE"
Run Code Online (Sandbox Code Playgroud)

我想要实现的目标是什么?

用户提供的脚本可以是上述两种类型中的任何一种,也可以是两者的混合.我的工作是运行脚本并等待它启动的所有进程退出然后关闭节点.如果它的阻塞类型,大小写很简单,即得到脚本执行过程的PID并等到ps -ef | grep -ef PID没有更多的条目.非阻塞脚本是给我带来麻烦的

Is there a way I can get list of PIDs of all the child process spawned by execution of a script? Any pointers or hints will be highly appreciated

unix bash shell process

8
推荐指数
3
解决办法
1万
查看次数

文件大小采用UTF-8编码?

我创建了一个UTF-8编码的文件,但我不明白磁盘占用大小的规则.这是我的完整研究:

  1. 首先,我使用单个印地语字母"क"创建了该文件,Windows 7上的文件大小为
    8个字节.

  2. 现在有两个字母'कक',文件大小为11个字节.

  3. 现在有三个字母'ककक',文件大小为14个字节.

有人可以解释一下为什么它会显示这样的尺寸吗?

utf-8

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

sed 临时文件权限被拒绝

我尝试sed替换值0.1.233 ...在命令行上没有问题;但是,当将此命令放入 shell 脚本中时,出现错误:

sed: couldn't open temporary file ../project/cas-dp-ap/sedwi3jVw: Permission denied 
Run Code Online (Sandbox Code Playgroud)

我不明白这个临时 sedwi 文件来自哪里。

您知道为什么我有这个临时文件以及如何传递它吗?

$(sed -i "s/$current_version/$version/" $PATHPROJET$CREATE_PACKAGE/Chart.yaml)

++ sed -i s/0.1.233/0.1.234/ ../project/cas-dp-ap/Chart.yaml
sed: couldn't open temporary file ../project/cas-dp-ap/sedwi3jVw:   Permission denied
+ printf 'The version has been updated to : 0.1.234 \n\n \n\n'
The version has been updated to : 0.1.234 
+ printf '***********************************'
Run Code Online (Sandbox Code Playgroud)

linux bash shell

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

来自 Facebook API 的选项卡事件未显示在网站上

我正在通过他们的 API 将 Facebook 事件源嵌入到我的网站(我有一个开发者帐户并且我已登录),但是在使用 Facebook 插件部分https://developers.facebook.com/docs/plugins/page- plugin/#并选择事件选项卡,它只显示页面标题,没有其他内容:(此处问题的结果: https: //www.hairydogvenue.co.uk/gig-guide

这只是 Facebook 方面的一个错误吗?几个月前它运行良好,我也是相关页面的管理员。

iframe代码在这里:

<iframe src="https://www.facebook.com/plugins/page.php?href=https%3A%2F%2Fwww.facebook.com%2Fthehairydogderby&tabs=events&width=500&height=850&small_header=false&adapt_container_width=true&hide_cover=false&show_facepile=true&appId=505386827636891" width="500" height="850" style="border:none;overflow:hidden" scrolling="no" frameborder="0" allowfullscreen="true" allow="autoplay; clipboard-write; encrypted-media; picture-in-picture; web-share"></iframe>
Run Code Online (Sandbox Code Playgroud)

html javascript facebook

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

我是愚蠢还是 Julia 比 python 快得离谱?

我正在尝试用 Python 完成一项非常简单的任务,我已经在 J​​ulia 中完成了这项任务。它包括获取多个 3d 元素的数组,并创建该列表中唯一值的索引字典(请注意,该列表有 6,000,000 个元素长)。我已经在 J​​ulia 中完成了此操作,并且速度相当快(6 秒) - 这是代码:

function unique_ids(itr)
#create dictionnary where keys have type of whatever itr is 
 d = Dict{eltype(itr), Vector}()
#iterate through values in itr
 for (index,val) in enumerate(itr)
    #check if the dictionary 
   if haskey(d, val)
     push!(d[val],index)
   else
     #add value of itr if its not in v yet 
     d[val] = [index]
   end
 end
 return collect(values(d))
end
Run Code Online (Sandbox Code Playgroud)

到目前为止,一切都很好。然而,当我尝试在 Python 中执行此操作时,它似乎需要很长时间,以至于我什至无法告诉你需要多长时间。所以问题是,我在这里做了一些愚蠢的事情,还是这只是这两种语言之间差异的现实?这是我的 Python 代码,是 Julia 代码的翻译。

def unique_ids(row_list):
    d = {}
    for (index,val) …
Run Code Online (Sandbox Code Playgroud)

python arrays performance dictionary julia

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

使用linux命令在电子邮件中嵌入图像

有没有一种方法嵌入图像转换成使用诸如Linux命令的电子邮件的正文muttsendmail

我用过这个

mutt -e 'set content_type="text/image"' \
   u.mohan@6dtech.co.in -s "TEST" \
    -i image001.jpg < data.txt
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

linux email sendmail

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

Emacs:名为"virtualenv"的程序不存在

我在python模式下遇到以下错误消息.

Error (jedi): Failed to start Jedi EPC server.
*** You may need to run "M-x jedi:install-server". ***
This could solve the problem especially if you haven't run the command yet
since Jedi.el installation or update and if the server complains about
Python module imports.
Run Code Online (Sandbox Code Playgroud)

然后我试了一下M-x jedi:install-server.然后它抱怨说

Program named "virtualenv" does not exist
Run Code Online (Sandbox Code Playgroud)

现在从我从谷歌获得的结果,我将以下行添加到我的emacs.d/init.el文件,但我仍然得到相同的错误.请注意我使用的是Windows 7

(when (memq window-system '(mac ns))
  (exec-path-from-shell-initialize))
Run Code Online (Sandbox Code Playgroud)

试图在Windows环境下在emacs中设置jedi已经给我带来了很多时间和麻烦,我只想一劳永逸地完成这个.

理想情况下,我正在寻找一个答案,列出了在emacs中设置virtualenv(在Windows 7上)所需的所有步骤.

python emacs virtualenv

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

在嵌套承诺链中捕获错误的更简洁方法?

我是使用 promise 的新手,我注意到,为了捕获嵌套 promise 链中的错误,我需要对链中的每个 promise 调用 catch 方法。有没有更干净的方法来写这个?

      poll.pollForCandidates().then((candidates) => {
        let clientId = candidates[0].clientId;
        poll.getUnprocessedCandidates({context, clientId, candidates})
          .then((unprocessedCandidates) => {
            console.log(unprocessedCandidates);
            poll.addCandidatesToQueue(context, unprocessedCandidates)
              .then((processedCandidates) => {
                console.log(processedCandidates);
                poll.addCandidatesToTable(processedCandidates)
                  .then((result) => {
                    console.log(result);
                  })
                  .catch((error) => {
                    console.log(error);
                  });
              })
              .catch((error) => {
                console.log(error); 
              })
          })
          .catch((error) => {
             console.log(error); 
          })
      })
      .catch(() => {
        console.done(error); 
      });
    };
Run Code Online (Sandbox Code Playgroud)

javascript promise ecmascript-6

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

以给定的行比率从 file1 到 file2 交错文本文件

我有 2 个文本文件。其中一个包含的行数是另一个的 3 倍。较小的文件包含标题,我希望将其与较大文本文件的行以 3:1 的比例交错

例如

小文件:

header1
header2
header3
Run Code Online (Sandbox Code Playgroud)

大文件

lines1.1
lines1.2
lines1.3
lines2.1
lines2.2
lines2.3
lines3.1
lines3.2
lines3.3
Run Code Online (Sandbox Code Playgroud)

变成:

header1
lines1.1
lines1.2
lines1.3
header2
lines2.1
lines2.2
lines2.3
header3
lines3.1
lines3.2
lines3.3
Run Code Online (Sandbox Code Playgroud)

我有一个 shell 解决方案来解决我的问题:

header1
header2
header3
Run Code Online (Sandbox Code Playgroud)

效果很好。然而我的小文件有1000万行。按照目前的进度,我估计大约一年内就能完成。

任何加快速度的帮助将不胜感激。无论是一个简单的外壳无循环内衬,还是只是另一种语言的快速工具,都很棒。

bash shell awk text

7
推荐指数
2
解决办法
179
查看次数

为什么 os.system('cls') 不清除最近的输出?

在使用Dev-C++之前我总是使用system('cls')C语言。现在正在学习Python,使用Pycharm 2020.2.3。

我尝试使用os.system('cls'). 这是我的程序:

import os

print("clear screen")
n = int(input(""))
if n == 1:
    os.system('cls')
Run Code Online (Sandbox Code Playgroud)

我的程序没有错误,但它没有清除最近的输出。

这是我的程序的输出:

我的输出的屏幕截图

为什么不清除最近的输出似乎是什么问题?

python os.system pycharm python-3.x

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