我有使用type -tshell脚本,但显然它最初是为bash而写的,在这台机器上,我在zsh上 ,它不工作。 我看到bash文档type -t : 如果使用了-t选项,type打印一个单词,它是'别名','函数','内build','文件'或'关键字'之一,如果名称是别名,shell函数,shell内置,磁盘文件或shell保留字。 如果找不到名称,则不会打印任何内容,types将返回失败状态。 但是在zsh中, type不接受-t选项,而实际上它是别名: 键入[-fpam] name …与whence -v相同。 从那里: 对于每个名称,指出如果用作命令名称将如何解释。 '-v'标志产生更详细的报告。 '-c'标志以csh格式打印结果,优先于'-v'。 '-f'标志会导致shell函数的内容被显示,否则,除非使用'-c'标志,否则不会发生。 即使是别名,保留字,shell函数或内置函数,“-p”标志也会search名称。 '-a'标志会在整个命令path中search所有名称。 使用'-m'标志,参数被当作模式(应该被引用),并且为与这些模式中的一个匹配的每个命令显示信息。 其中不包括所需的输出。 在zsh上获得en等效结果的一种方法? 更改shell不是这台机器上的一个选项。
我正在尝试使用HTMLDOC将多个htm文件转换为pdf。 我可以使用以下htmldoc –webpage -f filename.pdf sample/filename.htm转换单个文件: htmldoc –webpage -f filename.pdf sample/filename.htm 。 我试着做一个脚本,它似乎运行,但不创buildPDF文件。 for F in *; do if [ "${F}" ]; then echo "${F}" htmldoc –webpage -f /home/name/pdf/$F.pdf /home/name/sample/$F fi done 如果有人能帮助我做到这一点,我将不胜感激。 除了不会导致预期的PDF文件,我没有得到任何错误。 谢谢。 杰西。 PS我只是注意到,我的脚本的输出前缀的命令行执行程序htmldoc文件名。 computer1% ./convertpdf.sh convertpdf.sh htmldoc –webpage -f /home/name/pdf/convertpdf.sh.pdf /home/name/oz-sample/convertpdf.sh sample1.htm htmldoc –webpage -f /home/name/pdf/sample1.htm.pdf /home/name/oz-sample/sample1.htm sample2.htm htmldoc –webpage -f […]
我想在启动时在Ubuntu 16.04 LTS桌面上执行一个脚本。 我已经将脚本添加到/etc/init.d位置。 但重启后,我无法看到我的脚本运行使用 pidof -s pgd 一旦我执行这个命令sudo service run_pgd start它开始与一个PID。 我想要这个脚本在后台执行。 我已经通过在rc.local添加脚本来达到同样的效果,它工作正常。 但是我在/etc/init.d位置有问题这是脚本文件 #!/bin/bash ### # Configuration section # # Specify full path to directory with pgd executable and config files here: # For example: PGD_DIR="/usr/local/Neurotechnology/Activation" PGD_DIR="/opt/Neurotec_Biometric_10_0_SDK/Bin/Linux_x86_64/Activation" # # End of Configuration section ### # If PGD_DIR is not set use the directory […]
我有一个夜间svn提交脚本,应该考虑到所有可能的场景,并提交新的东西到我们的svn仓库。 基本上我正在运行以下步骤: svn status [path]添加任何新文件 svn status [path]删除任何手动删除的文件 倾销mysql开发数据库 svn提交所有上述更改与默认消息。 这是我们正在使用的脚本: #!/bin/bash echo "Adding new files to the nightly commit" svn status [path] | grep ? | sed 's/[?MD]//g' | xargs -I {} svn add {} echo "Removing files manually deleted" svn status [path] | grep ! | sed 's/[!]//g' | xargs -I {} svn […]
是否可以使用自定义主机设置为ApacheconfigurationVirtualHost而无需修改/ etc / hosts? 我想要一个VirtualHost连接到不同的主机进行testing,然后我的现场系统。 例如,在我的/ etc / hosts文件中,我将有如下条目: 10.0.0.10 real_db 其中10.0.0.10是我的testing框的IP, real_db是到实时系统的链接。 这是一个设置,我必须与改变代码指向一个不同的服务器将需要触摸几百个文件。 我正在寻找一种方法来让Apache控制哪些主机使用取决于我访问的VirtualHost。 我的另一种select是编写一个Bash脚本来评论/取消注释/ etc / hosts中的条目,尽pipe这种方法依赖于我记得实际做到这一点。 我宁愿坚持一些不需要我input的东西。 谢谢
我想将目录及其所有内容移到另一个目录上。 我的意思是,如果我有两个目录,A和B,我想把B移到A上,我想把不在A中但是在B中的文件和目录简单地复制到A中,同样的文件将A中的名称更新为B中的副本,并将A中的同名文件夹更新为来自B的新内容,但否则保留现有内容 有没有办法在bash中轻松做到这一点? 顺便说一句,这是我的理解,这是当你提取一个tar归档的旧版本的档案时会发生什么。 这是真的?
我正在使用Zend框架。 最近我安装了ZF的最后一个版本。 我尝试从ubuntu的terminal使用zend工具。 当我做ZF展示版时,我仍然看到版本1.9.6。 我怎样才能确保ZF命令将使用最新版本? 我想我曾经把ZF添加到我的terminalconfiguration文件中,但我不知道如何改变它。 谁能帮我?
我们有一个备份例程,以前在同一台服务器上从一个磁盘运行到另一个磁盘,但最近已经将源数据移动到远程服务器,并试图通过scp复制作业。 我们需要在目标服务器上运行脚本,并且在两台服务器之间build立了基于密钥的scp(不需要用户名/密码)。 使用scp来复制特定的文件和目录是完美的: scp -r -p -B [email protected]:/mnt/disk1/bsource/filename.txt /mnt/disk2/btarget/ 但是,我们之前的例程会迭代源磁盘上的目录以确定要复制哪些文件,然后通过gpgencryption单独运行它们。 有没有什么办法可以做到这一点,只有使用scp? 再一次,这个脚本需要从目标服务器运行,而作业运行的用户只有scp(无ssh)访问目标系统。 旧的工作看起来像这样: #Change to source dir cd /mnt/disk1 #Create variable to store # directories named by date YYYYMMDD j="20000101/" #Iterate though directories in the current dir # to get the most recent folder name for i in $(ls -d */); do if [ "$j" […]
我不是shell脚本专家。 我正在寻找一个shell脚本,用于在启动/执行当前Java进程之前检查在系统中运行的最大Java进程数(MyJavaStandalone)。 例: 脚本: /home/myfolder/script.sh script.sh包含 /usr/java/jdk1.6.0/bin/java MyJavaStandalone >> $DATE.log & 这里,在执行“MyJavaStandalone”之前,如果已经有10个进程正在运行,那么不应该启动这个当前进程。
我不是编写shell脚本的专家,但我正在寻找一个非常具体的解决scheme。 操作系统: CentOS版本5.2(最终) 我有一个Java独立的写保持(所有System.out.println)到一个日志文件。 由于某种未知的原因,这个Java独立版在我的服务器的某个时间点停止工作,最终日志写入也停止工作。 我想有一个脚本,它检查服务器中当前date和时间的日志文件的最后修改date和时间。 如果时差超过5分钟,我想立即发送邮件给我的收件人列表。 这样我会知道这个Java独立版何时停止工作。 我将把这个脚本移动到crontab并使其每隔1分钟运行一次,这样整个过程就自动完成了。 日志文件位置: /usr/local/logs/standalone.log