【问题标题】:Can I use what I wrote on the shell (bash, cmd, irb, etc) in a script automatically?我可以在脚本中自动使用我在 shell(bash、cmd、irb 等)上写的内容吗?
【发布时间】:2010-06-07 23:57:20
【问题描述】:

总体思路很简单,我想为某个任务制作一个脚本,我在 shell(任何 shell)中做,然后我想复制我使用过的命令 .

如果我复制窗口中的所有内容,那么我有很多内容要删除更正。 (而且不容易从 shell 中复制)

简历:我想把我写的所有东西都拿走……

有没有简单的方法来完成这项简单的任务?


更新:部分解决方案

bash中,解决方案很简单,有一个history命令,还有想法的端口:

IRBTweaking IRB

Cmd:使用 PowerShell -> Get-History或使用 cygwin


另一个更新: 我发现 doskey 有一个参数 history 可以做到这一点:
cmd: Doskey /history >> history.cmd

【问题讨论】:

  • 简短问题:»Cmd: Use PowerShell -> Get-History (or use cygwin)« 这行到底应该是什么意思? PowerShell 不是 cmd 并且无论如何都无法访问其历史记录。赛格温也一样。我认为您在这里混淆了一些事情。
  • 意思是:如果你想在windows中拥有历史,你必须使用“power shell”,你有Get-History cmdlet可以做到这一点。 (或者使用cygwin(这样你就可以使用bash的历史命令))

标签: bash shell cmd irb


【解决方案1】:

是的,您可以使用:

history -w filename.sh

这会将您的命令历史记录保存到 filename.sh。您可能需要对其进行编辑以仅保留作为命令序列一部分的行。

注意:这是一个 bash 命令,不适用于所有 shell。

【讨论】:

  • +1,它在 any shell 中不起作用,但我怀疑是否有通用的解决方案。
  • 您还可以在 bash 和 ksh 中使用 'fc -l'(可选地带有一系列命令号),这会稍微扩大范围。
  • 这个页面有一个想法到 IRB 的端口:blog.nicksieger.com/articles/2006/04/23/tweaking-irb
【解决方案2】:

脚本 在这里可能会有所帮助。键入 script 会将您带入一个新的 shell 并保存 所有输入和输出到一个名为 typescript 的文件。当你完成互动后, 退出外壳。然后文件 typescript 可以进行 grep'ing。例如,您可能 grep 提示并将输出保存到文件中。如果您像我一样是一个笨拙的打字员,那么您可能需要做一些清理工作以删除退格键。曾经有一个程序可以做到这一点,但我现在似乎没有找到它。这是我在 '网:http://www.cat.pdx.edu/tutors/files/fixts.cpp

如果您想跟踪整个交互式会话并将其发布到网络上,这种方法特别有用。

【讨论】:

  • 感谢您的回答,这听起来很有趣且很有用,但实际上并不是编写脚本(因为您必须 grep 文件,使用 history 更简单... )
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-05-13
  • 1970-01-01
  • 2020-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-07
相关资源
最近更新 更多