Articles of shell

chown:不允许操作

我有问题,我需要通过PHP脚本在系统中的不同用户设置文件所有者的权限 所以我通过以下命令来做到这一点,其中1002是系统的用户ID。 file_put_contents($filename, $content); system("chown 1002 " . $filename . ""); 然而,我只在生产服务器(testing服务器,它工作正常)得到这个错误 chown: changing ownership of `/var/spool/asterisk/06h12m7.call': Operation not permitted

从`find`循环文件名?

如果我运行这个命令: sudo find . -name *.mp3 那么我可以得到很多mp3文件的清单。 现在我想用循环中的每个mp3文件做一些事情。 例如,我可以创build一个while循环,并将第一个文件名称分配给variablesfile 。 然后我可以用这个文件做一些事情。 接下来,我可以将第二个文件名称分配给variablesfile然后执行该操作等。 我怎样才能实现这个使用Linux shell命令? 任何帮助表示赞赏,谢谢!

如何在PHP中处理shell输出

我正在尝试编写一些PHP报告function的shell脚本。 所以我开始使用diskusage报告 我想要以下格式 drive path ————total-size ——–free-space 没有其他的 我的脚本是 $output = shell_exec('df -h -T'); echo "<pre>$output</pre>"; 其输出如下所示 Filesystem Type Size Used Avail Use% Mounted on /dev/sda6 ext3 92G 6.6G 81G 8% / none devtmpfs 3.9G 216K 3.9G 1% /dev none tmpfs 4.0G 176K 4.0G 1% /dev/shm none tmpfs 4.0G 1.1M 4.0G 1% /var/run none tmpfs […]

相对shebang:如何编写一个运行它的可移植解释器的可执行脚本

比方说,我们有一个程序/软件包,它有自己的解释器和一组脚本,应该在执行时调用它(使用shebang)。 假设我们想保持它的可移植性,即使只是复制到不同的位置(不同的机器),它仍然可以运行,而不需要调用setup / install或者修改环境(PATH)。 系统解释器不应该混入这些脚本。 给定的约束条件不包括像绝对path这样的已知方法: #!/usr/bin/python 并在环境中search #!/usr/bin/env python 单独的发射器看起来很丑,不能接受。 我发现了很好的总结了shebang局限性,这些局限性描述了为什么shebang中的相对path是无用的,解释者不能有多于一个参数: http : //www.in-ulm.de/~mascheck/various/shebang/ 而且我也用“多线社帮”技巧find了大多数语言的实用解决scheme 。 它允许写这样的脚本: #!/bin/sh "exec" "`dirname $0`/python2.7" "$0" "$@" print copyright 但是有时候,我们不希望用这种方法来扩展/修补依赖于shebang的现有脚本和绝对path的解释器。 例如,Python的setup.py支持–executable选项,它基本上允许为它生成的脚本指定shebang内容: python setup.py build –executable=/opt/local/bin/python 所以,特别是,可以指定–executable=为了使所需的种类的可移植性? 或换句话说,因为我想保持这个问题不是太具体到Python … 这个问题 如何写一个指定解释器的shebang,其path与正在执行的脚本的位置有关?

从PL / SQL调用shell脚本,但shell作为网格用户而不是oracle执行

我正在尝试使用Runtime.getRuntime().exe执行Oracle数据库内的shell脚本。 运行在Red Hat 5.5上的Oracle 11.2.0.4 EE CREATE OR REPLACE procedure pr_executa_host(p_cmd varchar2) as language java name 'Util.RunThis(java.lang.String)'; / public class Util extends Object { public static int RunThis(java.lang.String args) { Runtime rt = Runtime.getRuntime(); int rc = -1; try { Process p = rt.exec(args); int bufSize = 4096; BufferedInputStream bis = new BufferedInputStream(p.getInputStream(), bufSize); int […]

如何获取NIC卡的逻辑名称,给出与其相关的IP地址?

我正在研究一个shell脚本,它需要知道与给定ip关联的逻辑名(eth0,eth1等)。 我正在使用的当前过程是使用filterparsingifconfig的输出并获取与给定IP关联的NIC卡。 我想知道是否存在一个简单的方法或直接stream水线Linux命令来获得上述细节?

计算input文件中string的出现次数

有一个shell脚本应该处理传入的文本文件。 此文本文件包含分割成多行的string,每个string都存在多次。 shell脚本需要读取这个文本文件并输出每个string的string和计数。 考虑这个文本文件是: 蒂姆 蒂姆 标记 标记 艾伦 艾伦 艾伦 输出应该是这样的: 蒂姆出现2次 马克出现2次 艾伦出现3次 现在,我可以打印string的发生,但重复的string出现的次数,即“Tim出现2次”打印两次。 我试图用NULLreplace一个string,只要我计算它的发生,但由于某种原因,sed不工作,因为也许我不是在正确的地方(或以正确的方式)调用它, #!/bin/bash INPUT_FILE="$1" declare -a LIST_CHARS if [ $# -ne 1 ] then echo "Usage: $0 <file_name>" exit 1 fi if [ ! -f $INPUT_FILE ] then echo "$INPUT_FILE does not exists. Please specify correct file name" exit 2 […]

在cURL命令中使用环境variables – Unix

我的问题很简单。 我想在cURL命令中使用环境variables,类似于: curl -k -X POST -H 'Content-Type: application/json' -d '{"username":"$USERNAME","password":"$PASSWORD"}' 当我运行命令$ USERNAME作为“$ USERNAME”string传递给命令而不是variables的值。 有没有办法摆脱这种情况? 谢谢。

使用SIGKILL杀死父进程和subprocess

我正在写一个shell脚本,在其中我有父进程,它有由sleep &命令创build的subprocess。 现在我想杀死父进程,这样subprocess也会被杀死。 我可以用下面的命令来做到这一点: trap "kill $$" SIGINT trap 'kill -HUP 0' EXIT trap 'kill $(jobs -p)' EXIT 这些命令正在使用kill [parent_process_ID]命令,但是如果我使用kill -9 [parent_process_ID]那么只有父进程将被终止。 请进一步指导我实现此function,以便当我用任何命令杀死父进程时,subprocess也应该被终止。

如何更改Linux shell脚本中的文件扩展名?

我发现了一些类似的情况,但是这是我写的唯一一个除了运行命令之外什么也不做的shell脚本,所以我很努力地将这些例子应用到我自己的情况中,持有<3 我只是试图从MP4批量翻录audio。 这个脚本的作品: for f in *.mp4; ffmpeg -i "$f" -f mp3 -ab 192000 -vn "mp3s/$f.mp3" done 但是这些文件都以.mp4.mp3结尾。 我怎样才能摆脱mp4的一部分?