Tag: bash

Bash:从string中正确读取引用/转义的参数

我遇到了一个问题,在Bash脚本中传递参数给一个命令。 poc.sh: #!/bin/bash ARGS='"hi there" test' ./swap ${ARGS} 交换: #!/bin/sh echo "${2}" "${1}" 目前的产出是: there" "hi 只改变poc.sh(因为我相信交换做我想要它正确),我怎么得到poc.sh通过“喂那里”和testing作为两个参数,与“你好”没有引号周围呢?

在不同的variables(bash)中存储/捕获stdout和stderr

是否有可能存储或捕获stdout和stderr在不同的variables ,而不使用临时文件? 现在我这样做,在运行some_command时得到标准out和错误err ,但我想避免临时文件。 error_file=$(mktemp) out=$(some_command 2>$error_file) err=$(< error_file) rm $error_file

如何从PHP调用需要SUDO的shell脚本?

我有一个文件是一个需要SUDO工作的bash脚本。 我可以使用SUDO从命令行运行它,但会提示inputSUDO密码。 我想通过shell_exec从php运行这个脚本,但是如果我调用SUDO,它不像命令行那样可以提示input密码。 有没有办法通过与sudo电话sudo的密码? 我该怎么做?

Bash脚本总是打印“未find命令”

每次我在Debian的命令行中使用bash scriptname.sh来运行脚本时,我都会得到Command Not found ,然后是脚本的结果。 所以这个脚本可以正常工作,但总是会在屏幕上打印一个Command Not Found语句。 我从/var文件夹运行脚本。 这是脚本: #!/bin/bash echo Hello World 我运行它通过键入以下内容: bash testscript.sh 更新 – 问题出现在空行。 每个空白行都会导致找不到命令。 为什么会这样呢?

在Python中运行Bash命令

在我的本地机器上,我运行一个包含这一行的python脚本 bashCommand = "cwm –rdf test.rdf –ntriples > test.nt" os.system(bashCommand) 这工作正常。 然后,我在服务器上运行相同的代码,并收到以下错误消息 'import site' failed; use -v for traceback Traceback (most recent call last): File "/usr/bin/cwm", line 48, in <module> from swap import diag ImportError: No module named swap 所以我所做的是插入一个“print bashCommand”,然后在用os.system()运行之前在terminal打印我的命令。 当然,我再次得到错误(由os.system(bashCommand)引起),但在该错误之前,它在terminal打印命令。 然后,我只是复制该输出,并做了复制粘贴到terminal,并按Enter键,它的工作原理… 有没有人有线索怎么回事:(?

RE错误:Mac OS X上的非法字节序列

我试图在Mac OS X上replaceMakefile中的string来交叉编译到iOS。 该stringembedded了双引号。 该命令是: sed -i "" 's|"iphoneos-cross","llvm-gcc:-O3|"iphoneos-cross","clang:-Os|g' Configure 而错误是: sed: RE error: illegal byte sequence 我已经尝试了逃避双引号,逗号,破折号和冒号,没有喜悦。 例如: sed -i "" 's|\"iphoneos-cross\"\,\"llvm-gcc\:\-O3|\"iphoneos-cross\"\,\"clang\:\-Os|g' Configure 我有一个时间debugging这个问题。 有谁知道如何让sed打印非法字节序列的位置? 还是有人知道什么是非法的字节序列?

在bash中传递数组作为参数

我怎样才能将一个数组作为parameter passing给一个bash函数? 注意:在Stack Overflow找不到答案之后,我自己贴出了一些粗糙的解决scheme。 它只允许传递一个数组,它是参数列表的最后一个元素。 实际上,它根本不是传递数组,而是通过被调用的函数()重新组合成一个数组元素的列表,但是它对我有用。 如果有人知道更好的方法,请随时在这里添加它。

如何在Bash中定义哈希表?

什么是相同的Python字典,但在Bash(应该跨OS X和Linux)。

LAMP:如何为用户快速创build.zip大文件,无需磁盘/ CPU抖动

Web服务通常需要压缩几个大文件供客户端下载。 最明显的方法是创build一个临时的zip文件,然后或者将其echo给用户,或者将其保存到磁盘并redirect(将来有一段时间将其删除)。 但是,这样做有缺点: 密集的CPU和磁盘颠簸的初始阶段,导致… 在档案准备的同时,对用户的相当大的初始延迟 每个请求的内存占用量非常高 使用大量的临时磁盘空间 如果用户取消下载的一半,初始阶段(CPU,内存,磁盘)使用的所有资源将被浪费 像ZipStream-PHP这样的解决scheme通过将数据按文件铲入Apache文件来改善这一点。 但是,结果仍然是高内存使用率(文件全部加载到内存中),而且磁盘和CPU使用率也很高。 相比之下,请考虑下面的bash代码片段: ls -1 | zip -@ – | cat > file.zip # Note -@ is not supported on MacOS 在这里, zip以stream模式运行,导致内存占用less。 一个pipe道有一个整体的缓冲区 – 当缓冲区满时,操作系统暂停写入程序(pipe道左侧的程序)。 这里确保zip运行速度与cat输出速度一样快。 那么最好的方法就是做同样的事情:用web服务器进程replacecat ,将zip文件stream式传输给用户。 与仅传输文件相比,这会产生很小的开销,并且会有一个没有问题的,非尖锐的资源configuration文件。 你怎么能在LAMP栈上实现这个function?

如何在Linux上获得整体CPU使用率(例如57%)

我想知道如何获得一个系统的CPU使用率,并在%(在bash中)例如 示例输出: 57% 如果核心数超过1的话,如果可以算出平均百分比就好了