Articles of shell

没有换行的猫文件

在* nix中,如何显示(cat)没有换行的文件:更长的行应该被剪切,以便它们适合屏幕的宽度。

AJAX Progress:从Shell读取输出

目标 :build立一个进度条,让用户可以检查我的服务器已经下载了多less文件。 场景 :我有一个PHP脚本通过popen执行python脚本。 我做了这样的事情: $handle = popen('python last', 'r'); $read = fread($handle, 4096); pclose($handle); 这个python脚本输出到shell如下所示: [last] ZVZX-W3vo9I: Downloading video webpage [last] ZVZX-W3vo9I: Extracting video information [download] Destination: myvideo.flv [download] 9.9% of 10.09M at 3.30M/s ETA 00:02 问题 :当我读入由shell输出生成的文件时,除了最后一行,我得到了所有的shell输出! 为什么? 只需添加一下,当我通过shell运行命令时,shell光标出现在该行的末尾,并等待脚本完成。 谢谢大家

在后台运行的命令行脚本处于停止状态

我有一个简短的PHP实用程序脚本,我只是用cli来运行它: php myscript.php 脚本始终在运行,定期执行一些任务(与问题无关)。 它不需要用户的任何input。 运行后,我通常按CTRL + Z ,然后运行bg将进程置于后台,一切正常。 如果我运行它: php myscript.php & 脚本在启动时放在后台,但也处于停止状态。 例: [1] 11513 [1]+ Stopped php myscript.php 即使运行bg在这一点上没有帮助,我必须运行fg ,然后CTRL + Z和bg再次使其工作。 这是PHP脚本: <? while(true){ echo 'hi '.time()."\n"; sleep(30); } ?> 我的问题是,我不能直接在后台运行它,因为系统停止它,我不明白为什么。 我怎样才能解决这个问题? 更新: 我做了一个bash版本的同一个脚本,它可以运行,并放在后台(运行,而不是停止 ),只要启动它在&最后( script.sh & ) script.sh: #!/bin/bash while true; do echo `date` sleep 30 done 为什么php脚本在后台启动后会停止,而bash脚本不会呢? 什么可能导致这种不同的行为?

shell脚本中整数和浮点数的比较

在shell脚本中,我们如何比较(整数和浮点),(浮点和浮点),(浮点和整数),(整数和整数)只有一个条件。 我有几个例子 set X=3.1 set Y=4.1 if [ $X < $Y ] then echo "wassup" endif 但是从cron作业运行上面似乎没有工作。

Linux:以recursion方式查找字典中的文件列表

我有一个文本文件每行一个文件名: Interpret 1 – Song 1.mp3 Interpret 2 – Song 2.mp3 … (约200个文件名) 现在我想要为这个Filenamesrecursion地search一个文件夹来获取Filenames.txt中每个文件名的完整path。 这个怎么做? 🙂 (目的:复制文件到我的MP3播放器,但其中一些是坏的,我想重新复制全部,而不用花费我的音乐文件夹研究他们的小时)

Bash:将来自多个并发命令的stdout分解成列

我在bash脚本中使用单个&符运行多个命令,如下所示: commandA & commandB & commandC 他们每个都有自己的stdout输出,但是他们都混合在一起,洪水控制台不协调混乱。 我想知道是否有一个简单的方法来pipe输出到自己的列…使用column命令或类似的东西。 即。 就像是: commandA | column -1 & commandB | column -2 & commandC | column -3 这种事情是新的,但从最初的挖掘看来,像pr这样的东西可能是票吗? 或column命令…?

RM无法删除以 – 开头的文件

我有一个脚本创build文件,有时他们最终有2个破折号在开始,有没有什么办法删除它们MV也不工作 这是我得到的错误 $ ls –1355509766.jpg $ rm –1355509766.jpg rm: illegal option — – usage: rm [-f | -i] [-dPRrvW] file … unlink file $ rm "–1355509766.jpg" rm: illegal option — – usage: rm [-f | -i] [-dPRrvW] file … unlink file

如何在shell脚本中操作数组

我想我的脚本定义一个空的数组。 如果预定义条件成立,则应该添加数组值。 为此我所做的是 declare -a FILES file_count=0 if [ "$file_ext" != "$SUPPORTED_FILE_TYPE" ] ; then echo "$file_ext is not supported for this task." else $FILES[$file_count] = $filename file_count=$file_count+1 fi 当执行这个脚本时,我得到了这样的错误 linux-softwares/launchers/join_files.sh: 51: [0]: not found

用shell脚本启动和杀死java应用程序(Debian)

我是UNIX的新手。 我想用这样的脚本启动我的Java应用程序: #!/bin/sh java -jar /usr/ScriptCheck.jar & echo $! > /var/run/ScriptCheck.pid 这应该是工作。 它确实运行了应用程序,它确实写入了pid文件。 但是当我尝试用包含以下内容的不同脚本来停止进程: #!/bin/sh kill -9 /var/run/ScriptCheck.pid 控制台给了我这个错误: bash: kill: /var/run/ScriptCheck.pid: arguments must be process or job IDs 我最好的猜测是,我没有在停止脚本中写入正确的代码,也许没有给出正确的命令来打开.pid文件。 任何帮助将非常感激。

根据扩展名将文件移动到目录

我是Linux新手。 我想写一个shell脚本,将文件移动到某些文件夹的基础上扩展名 ,例如在我的下载文件夹,我有所有文件的混合文件types。 我写了下面的脚本 mv *.mp3 ../Music mv *.ogg ../Music mv *.wav ../Music mv *.mp4 ../Videos mv *.flv ../Videos 如何将文件添加到此文件夹时自动运行? 现在我必须每次手动运行脚本。 还有一个问题,有没有什么办法来结合这两个陈述 mv *.mp3 ../../Music mv *.ogg ../../Music 成一个单一的声明? 我尝试使用|| (C编程“或”运算符)和逗号,但他们似乎没有工作。