Questions tagged «shell-script»

Shell脚本是为操作系统的Shell(或命令行解释器)编写的脚本。

4
用于非破坏性地折叠或重新缩进HTML的实用程序
我有一个脚本,它接受来自wget或类似的输入,并使用它搜索关键词grep。(我保证我不会尝试使用正则表达式解析HTML,它只是一种模拟我们在另一个更复杂的产品中的内容检测行为的便捷方式。)这很有效,只要HTML内容不是太严重了。如果是这样,线条会变得非常长(在某些情况下我已经看到超过50 kB),并且grep它们会窒息。 为了解决这个问题,我希望能够折叠或重新缩进HTML,使其分布在更多行上。但是,为了使脚本能够提供准确的结果,我需要能够在不改变内容的情况下执行此操作。这意味着它无法纠正无效或未封闭的标签,并且它必须仅在元素之间折叠,而不是在元素内部折叠。 这两个要求似乎排除了我发现的所有HTML整理或美化实用程序。 是否有任何基于UNIX的shell实用程序,perl / python / ruby​​模块或类似的东西可以为我做这个? 或者,因为我需要的是在标签之间添加一些新行,有没有办法让我可以半自动地做到这一点?


2
跨多个版本的Windows将用户目录中的文件从源解压缩到目标
我有一个源zip文件,位于用户的“我的文档”目录中。保证永远在那里。我正在寻找一种方法来创建一个批处理或脚本,让我将该文件解压缩到用户目录中的目标目录。如果目标已经存在,则应首先删除现有目标文件夹。 示例流程: srcFile = %user%\My Documents\file.zip destFolder = %user%\My Documents\Unzipped\ if destFolder exists, delete it unzip srcFile to destFolder 我正在寻找适用于Windows XP和Windows 7的解决方案。如果可能的话,我不想使用Windows XP / 7中内置的zip应用程序。

1
在scp命令中使用通配符
我有一个bash脚本,它使用scp将几个文件复制到远程服务器。这个脚本工作正常,但现在我需要在名称中添加一个包含通配符的文件,我有一个问题。 #!/bin/sh files=('path1/subpath/file.*.ext' 'path2/subpath2/nowildcard.ext2' 'path3/subpath3/file3.*.ext3'); for j in "${files[@]}"; do echo "File \033[1;38;5;226m$j\033[0m is copying." scp -P12345 $j "name@host:/permanent/path/$j"; done 该脚本使用通配符(例如file.12345.ext或file3.4321.ext3)复制文件,但将文件保存在远程服务器上。* .ext和file3。*。ext3。我试图在文件名中使用反斜杠,但在这种情况下,脚本根本不会复制文件。 如何解决这个问题? 提前致谢。


1
将du(磁盘使用情况)结果传递给数字变量
在shell脚本中,我正在寻找一种方法将du(磁盘使用)结果传递给数字变量,这样我就可以将shell脚本的执行量调整到特定文件夹的大小。我尝试过像size = $(du -sh / folder)之类的东西,但这会将字母数字值传递给变量'size',再加上文件夹的名称,这显然不是我想要的。 我正在使用OSX,但我相信这更像是一个bash / linux问题。有人知道如何实现这一目标吗?非常感谢你。

1
在VMWare Fusion“runProgramInGuest”中捕获.bat脚本的输出
我最近开始了一项新工作,我们在VMWare Fusion中运行Windows的虚拟副本(Mac OSX是主机)。除此之外,我们还有一些.bat可以定期运行的实用程序文件。我希望能够从我的主机环境运行这些命令。 vmrun 对此很好,我想出了类似下面的内容: vmrun -T ws -gu <user> -gp <password> runProgramInGuest <.vmx file> c:\/batch\/hello.bat 这会执行命令,但它会以静默方式执行。在这种情况下,我hello.bat包含了经典 echo "hello, world!" 问题:有没有办法捕获Windows控制台上发送到标准输出的内容,并使用这些命令将其显示在我的主机中

1
在子shell或后台执行shell命令?
实际上我主要使用Ruby,但现在我已经创建了一个bash脚本文件。从这个脚本文件我在屏幕上显示消息。这是我的情景。 我使用aosd_cat模块在屏幕上显示消息,我成功完成了。为此,我使用了他们的文档。 这是我的message.sh脚本文件: #!/bin/bash function message_1(){ if [ condition ] echo 'message -1' | DISPLAY=:0 aosd_cat -u 10000 -e 2 -t 2 -R 'Green' -n 'Arial Bold 20' -p 0 -x 10 -y 60 else echo 'message -4' | DISPLAY=:0 aosd_cat -u 10000 -e 2 -t 2 -R 'Green' -n …

2
用于在今天的日期删除/删除文件的UNIX命令
我想删除当前创建的目录中的所有文件。 因此,如果今天是4月3日,那么我要求的UNIX commond会删除someFile2,someFile3,someFile4和someFile5。此命令不会删除someFile1。 someUser@:/someDirectory$ ls -lrt -rw-r--r-- 1 someUser someUser 4242 Mar 30 12:12 someFile1.dat -rw-r--r-- 1 someUser someUser 0 Apr 03 12:12 someFile2.dat -rw-r--r-- 1 someUser someUser 42424242 Apr 03 12:12 someFile3.dat -rw-r--r-- 1 someUser someUser 0 Apr 03 12:12 someFile4.dat -rw-r--r-- 1 someUser someUser 424242 Apr 03 12:12 …
2 unix  shell-script  rm  aix 

1
用于virtualbox VM的init.d控制脚本
我有一台Ubuntu服务器,始终需要在其上运行Virtualbox虚拟机。VM由VMAdmin没有管理员特权的特定用户管理。我需要创建一个init.d脚本来处理我的virtualbox虚拟机。 这应该: 主机系统启动时启动VM; 每当主机关闭时,保存来宾系统的状态; 提供用于启动,关闭,重置和备份VM的命令。

2
在Shell脚本中比较并计算具有多个值的两个变量
我已经在shell脚本中编写了三个配置单元查询,用于计算借项贷方和目标金额,这些金额输出低于值: debit_amount : BOI 4760545.650000 AXIS 284.49000000 SBI 87.220000000 ICICI 14199.66000 credit_amount : BOI 3424.65 AXIS 43.4546 SBI 4.54546 ICICI 3423.3465 target_amount : BOI 4757121.000000 AXIS 241.0354 SBI 82.67454 ICICI 10776.3135 现在我想计算每个银行的借方贷方金额,并与target_amount值进行比较 如何用shell脚本编写它? 我尝试使用awk命令,但未获得所需的输出。

2
使用bash脚本批量折叠文本文件
我很难做一些简单的事情。我大约有2000个.txt文件,这些文件由单行数字组成。我想使用fold命令将单行折叠为多行的一列,并使用此新的折叠版本覆盖原始文件。我的尝试: #!/bin/bash for i in *.txt ; do fold -w 1 $file > $file done 不起作用 救命?谢谢。

0
确定用户是否在ESXi(Busybox)上存在
我正在编写一个shell脚本,其中需要检查给定用户是否存在。在大多数Linux系统上,我可以使用: id -u ${USER} 2>&1 || die "User ${USER} not found" 要么 getent passwd ${USER} 2>&1 || die "User ${USER} not found" 然而,ESXi的6(使用Busybox的外壳,如果该事项),并不能有任何的id或getent可用。 我知道我可以解析/etc/passwd,但是如果启用了LDAP身份验证,那将不起作用。 我可以使用什么命令来确定用户是否存在(按用户名)在VMware ESXi上?

0
在Ubuntu 14.04 Virtual Box 4.33上按脚本安装USB设备(打印机)
我们在运行Virtual Box 4.33的Windows 7上安装了ubuntu 14.04。由于USB打印机安装在主机或客户机上,并且似乎没有解决方案可以同时使用两者,所以我的观点是创建一个脚本。该脚本应将USB端口的安装从打印机切换到虚拟盒或主机。 我搜索了这样的解决方案,但Google没有帮助。那不可能吗?任何想法这样的解决方案。 谢谢你的帮助!

0
如何使用相同的正文回复多个传入的电子邮件
我希望能够回复同一个机构的多封电子邮件。在这种情况下,回复字段是不同的,电子邮件的原始正文也是如此。 唯一保持不变的是我的回复。 我已经阅读了有关Mozilla模板的内容,但我看不到如何动态自动填充回复字段以及原始内容。 我正在使用Ubuntu 16.04和Mozilla Thunderbird 我发布在这里,因为这可能是最好的脚本。 我想我必须编写一个脚本来完成这样的事情。虽然我不得不说,如果有人没有实现类似的功能,我会感到惊讶。 我在为此创建脚本时遇到的一个障碍是将邮件设置配置到某个地方的Ubuntu中。 这不是一项艰巨的任务,但我认为必须这样做。 我是Pico的忠实粉丝,但我还没有考虑过取代它的是什么以及它是否是一个强大的电子邮件客户端。 所以我想知道我现有的设置是否允许我做这样的事情,如果没有,为了获得这个功能,最好的工具和配置是什么。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.