小编ITn*_*bie的帖子

将 shell 命令的输出分配给变量

我想将 shell 命令的输出分配一个变量。

如果我直接回显命令,代码将正确执行:

for ((i=0; i<${#result[@]}; i++)); do
    echo ${result[$i]} | awk '{print $1}'
    done
Run Code Online (Sandbox Code Playgroud)

但是,如果我将它分配给一个变量,

size=`${result[$i]} | awk '{print $1}'`
echo $size
Run Code Online (Sandbox Code Playgroud)

或者

size=$(${result[$i]} | awk '{print $1}')
echo $size
Run Code Online (Sandbox Code Playgroud)

他们不工作。

我该如何解决?

linux shell

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

Python tarfile 比 Linux 命令慢

我尝试了不同的压缩文件夹的方法。我的理解是 Python 内置模块总是比 subprocess.call("Linux command") 快。但我只是做了一些演示。tarfile 模块比 subprocess.call("tar") 慢。有人可以向我解释一下吗?

    #!/usr/bin/python

import os
import time
import tarfile
import subprocess

tStart1 = time.time()

TestFolder = ["Jack", "Robin"]
for folder in TestFolder:
    name = "/mnt/ShareDrive/Share/ExistingUsers/"+folder
    path = "/mnt/TEST2/"
    tar = tarfile.open(path+folder+".tar.gz", "w:gz")
    tar.add(name)
    tar.close()
tEnd1 = time.time()

time.sleep(2)

tStart2 = time.time()
for folder in TestFolder:
    path = "/mnt/TEST1/"
    subprocess.call(["tar", "zcvf", path+folder+".tar.gz", "-P", "/mnt/ShareDrive/Share/ExistingUsers/"+folder])
tEnd2 = time.time()

print "The module cost %f sec" % (tEnd1 - tStart1)
print "The subprocess cost %f sec" % …
Run Code Online (Sandbox Code Playgroud)

python centos

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

使用 &amp;&amp; 和 || 时无法停止 BASH 运营商

如果命令有任何错误,我想停止我的 BASH。

make clean || ( echo "ERROR!!" && echo "ERROR!!" >> log_file && exit 1 )
Run Code Online (Sandbox Code Playgroud)

但我的 BASH 似乎仍在继续。如何输入exit 1单行运算符

我对 BASH 非常陌生,非常感谢任何帮助!

bash ubuntu exit

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

标签 统计

bash ×1

centos ×1

exit ×1

linux ×1

python ×1

shell ×1

ubuntu ×1