Articles of shell

如何将目录复制到使用bash安装的目录中?

假设嵌套的目录foo/bar和一个空目录dest 。 我想调用像install foo dest这样的dest包含目录foo/bar 。 我已经尝试了以下内容: install foo dest => install:省略目录“foo” install -d foo dest =>没有任何反应

将引用的parameter passing给shell脚本并保持引用

我试图重新使用发送到我的脚本的参数作为我在脚本中执行的命令的参数。 看下面的例子,我执行mailx 。 庆典 $./myscript.sh "My quoted Argument" myscript.sh mailx -s $1 这最终被执行为: mailx -s My Quoted Argument 。 我尝试了"$1" ,但我的报价被扔掉了。 (错误的语句,请阅读下面的答案) 我试过""$1""但是我的报价被扔掉了。 我试图做'$1'但这是强烈的引用,所以1美元永远不会得到解释。 我意识到我可以做$@ ,但是这给了我所有的参数。 ….你得到的图片 任何帮助,将不胜感激!

简单的shell脚本来复制文件和文件夹,并执行一个命令

我以前没有写过任何Shell脚本,但是我必须编写一个简单的shell脚本来执行以下操作; 我将把所有需要的文件保存在一个文件夹中,并将其作为一个tar文件与这个shell脚本捆绑在一起; 所以当用户运行shell脚本时,需要将各自的文件复制到各自的目的地。 复制的执行如下: 将plugin.so文件复制到/ usrlib / mozilla / plugins / 将.so库文件复制到/ usr / local / lib / 将一些头文件目录(文件夹)复制到/ usr / local / include / 最后,需要做ldconfig。

如何删除一个shell脚本中的string的所有发生的点?

例如hostname =“test.test.test”,那么去除结果后应该像“testtesttest”

curl“写出”特定标题的值

我目前正在写一个bash脚本,我正在使用curl。 我想要做的是获得一个特定的响应头。 基本上我想要这个命令的工作: curl -I -w "%{etag}" "server/some/resource" 不幸的是,-w,–write-out选项似乎只有一组支持的variables,不能打印任何属于响应的头部。 我是否需要自己分析curl输出以获取ETag值,还是有办法让curl打印特定头文件的值? 显然有点像 curl -sSI "server/some/resource" | grep 'ETag:' | sed -r 's/.*"(.*)".*/\1/' 做的伎俩,但它会更好,有curl过滤标题。

Shell脚本,在回显消息后在同一行上读取

跟着我正在执行的shell脚本 #!/bin/sh echo "Enter [y/n] : " read opt 它的输出是 Enter [y/n] : Y 我希望这个variables应该像下面一样在同一行上读取 Enter [y/n] : Y 应该是简单的我猜,但我是新来的bash脚本。

获取Outlook约会(.msg)的文件图标

我读过Shell和其他类似post使用的获取文件图标 – 已经使用SHFileInfo来获取任何给定的扩展名的关联图标,这很好。 但是,Outlook使用“.msg”作为邮件和约会项目(如果拖动电子邮件并将事件拖放到桌面上,则生成的图标将不同)。 我注意到如果使用registry方法,标准信封图标位于C:\ WINDOWS \ Installer {90120000-0011-0000-0000-0000000FF1CE} \ outicon.exe的索引17(在运行Outlook 2007的XP机器上) – 而且足够方便,约会图标位于索引18处。我可以在提取图标时硬编码18,但这听起来很脆弱。 给定一个电子邮件或约会的文件名(但不是实际的文件),并知道这是一个电子邮件或约会,有没有人知道如何获得正确的图标,通过壳或通过registry? 当然,如果我有方便的实际文件,我可以使用Icon.ExtractAssociatedIcon,但在我正在工作的系统中,我们正在显示存储在其他地方的文件列表,事先下载它们是不可能的。

在Windows上使用echoclosurescmd.exe

我想知道如何启动一个cmd.exe窗口与回声已经closures。 例如,我有以下命令行: start cmd /k test.exe 在新的cmd窗口中启动test.exe 。 但在这个cmd窗口中,回显是打开的。 是否有可能在一个新的cmd窗口启动test.exe回声closures?

Windows批处理脚本从文件名删除括号中的文本?

我在一个文件夹中有一堆文件,我想通过一个.bat或.vbs脚本(或类似的)复制和重命名。 这些文件被命名为: ABC-DE-(XXX)SomeNameHere.dat 我想复制这些文件并重命名它们,删除(XXX)部分,只留下: ABC-DE-SomeNameHere.dat 有一种类似的问题在这里回答,但我不能修改它为上述文件名模式工作,也只是重命名文件,不复制它们。 任何帮助深表感谢! 非常感谢。 编辑:张贴( 可怕的! )下面的代码。 可能最好忽略这个; _; @ECHO OFF FOR %%F IN ("ABC-DE-(*)*.dat") DO CALL :process "%%F" GOTO :EOF :process SET oldname=%1 SET "newname=%~nx1" SET "newname=%newname:*] =%" RENAME %oldname% "%newname%"

如果显示>符号,我怎样才能恢复我在terminal上的最后一个select?

我会很高兴,如果有人可以修改标题更合适,因为我是相当新的terminal。 我有一个terminal问题。 一旦我执行一个命令,如果它进入下一行,我不能closures它或恢复它。 我假定它启动可执行文件或使用>来请求更多的参数 例如: //Windows Machine vagrant up //Vagrant Instance Unix Machine $ git > > > > … it goes on like this, I can't close > so I can't execute other commands 唯一的解决scheme是重新启动terminal(这意味着我需要重新启动Vagrant实例) 它只发生在一些命令 – 不是全部,所以我不知道是什么造成了不同。 例如,执行composer ,我得到关于composer php的信息和terminal回到主要状态。 但是,如果我执行像php , git , mysql这样的东西, >符号出现,我不能从那里返回。 那么,两个基本的问题; 这是什么原因? 我怎样才能终止当前的命令返回主状态? 任何帮助将不胜感激。 PS。 我同时使用Windowsterminal和Unixterminal,这个问题都发生在两个。