问题标签 [shell]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
如何重定向 Tornado / VXWorks shell 输出?
我最近一直在研究一个嵌入式 C/C++ 项目,使用 Tornado 2 中的 shell 作为调试工具包中正在发生的事情的一种方式。这种方法的唯一问题是它是一个复杂的系统,因此有相当多的输出。每当一些新信息到达时,Tornado 都会“有帮助地”滚动窗口,这意味着如果您发现错误,它会很快从网站上消失而无法查看。每次向上滚动查看时,系统都会添加更多信息,因此查看它的唯一方法是断开硬件。
我很想知道是否有人可以重定向 Tornado 的输出?
我希望可能有一种方法可以从一个小型 python 应用程序中记录所有内容,以便我可以将过滤器应用于传入信息。我尝试连接到 Tornado 进程,但带有信息的窗口不是标准的 CEditCtrl,因此以这种方式提取文本是死路一条。
有什么想法吗?
[编辑]我应该提到我们只运行 Tornado 2.1.0 并且升级到更新的版本是我无法控制的。
[Edit2]根据 WinID,Tornado 中的相关窗口是“AfxFrameOrView42”。
如何创建与 Finder 的“压缩”菜单项格式相同的 zip 文件?
在 Mac OS X 上,您可以通过选择一些文件并从上下文菜单或文件菜单中选择“压缩”,从 Finder 创建一个 zip 存档。不幸的是,生成的文件与命令创建的存档不同zip
(使用默认选项)。
这种区别对 Apple 运营的至少一项服务很重要,该服务无法接受使用该zip
命令创建的档案。必须手动创建档案使我无法完全自动化我的发布构建过程。
如何在 shell 脚本中创建正确格式的 zip 存档?
编辑:自从很久以前写这个问题以来,我发现它们之间的关键区别在于ditto
它们zip
如何处理符号链接:因为应用程序包中的代码签名包含符号链接,所以它需要作为链接保存而不是存储作为常规文件。ditto
默认情况下执行此操作,但zip
不执行此操作(-y
需要选项)。
您最新的有用 Perl 单线(或涉及 Perl 的管道)是什么?
单线应该:
- 解决一个现实世界的问题
- 不要过于神秘(应该易于理解和重现)
- 值得花时间写它(不应该太聪明)
我正在寻找实用的技巧和窍门(补充示例perldoc perlrun
)。
替换 Python 的 Javascript 解释器
在快速动态类型语言方面,我真的开始喜欢 Javascript,因为我在 Web 项目中经常使用它,特别是因为它使用与 Actionscript (flash) 相同的语法。
这将是一种理想的 shell 脚本语言,可以更轻松地从站点的前端和后端移动代码,并且减少 python 的奇怪语法。
是否有一个易于安装的好的 javascript 解释器(我知道有一个基于 java 的解释器,但这意味着安装所有要使用的 java 东西),
使用 Powershell 访问 IIS 日志?
我知道您可以使用 PowerShell 将注册表之类的东西变成驱动器号。PowerShell 中还有其他对象以这种方式对待其他对象。有谁知道以这种方式访问 IIS 日志的任何 cmdlet?
当命令尝试以 shell 模式打开编辑器时打开 Emacs 缓冲区
我喜欢使用 Emacs 的 shell 模式,但它有一些不足之处。其中之一是当 shell 命令尝试调用编辑器时打开新缓冲区不够聪明。例如,将环境变量VISUAL
设置为vim
我从svn propedit
:
(可能很难从表示中分辨出来,但这是一个可怕的、丑陋的混乱。)
VISUAL
设置为"emacs -nw"
,我得到
(它适用于VISUAL
set to just emacs
,但只能从 Emacs X 窗口内部,而不是在终端会话内部。)
有没有办法让 shell 模式在这里做正确的事情并代表命令行进程打开一个新的缓冲区?
C/C++ 程序如何将自己置于后台?
从命令行启动的正在运行的 C 或 C++ 程序将自身置于后台的最佳方式是什么,相当于用户从命令末尾带有“&”的 unix shell 启动?(但用户没有。)它是一个 GUI 应用程序,不需要任何 shell I/O,所以没有理由在启动后绑定 shell。但我希望在没有“&”(或在 Windows 上)的情况下自动启动 shell 命令。
理想情况下,我想要一个可以在任何 Linux、OS X 和 Windows 上运行的解决方案。(或者我可以使用#ifdef 选择的单独解决方案。)可以假设这应该在执行开始时完成,而不是在中间的某个地方。
一种解决方案是让主程序成为启动真正二进制文件的脚本,小心地将其置于后台。但是,需要这些耦合的 shell/二进制对似乎并不令人满意。
另一种解决方案是立即启动另一个执行版本(使用“系统”或 CreateProcess),使用相同的命令行参数,但将子进程置于后台,然后让父进程退出。但与将自身置于后台的过程相比,这似乎很笨拙。
在几个答案后编辑:是的,fork()(或 system(),或 Windows 上的 CreateProcess)是一种方法,我在最初的问题中暗示了这一点。但是所有这些解决方案都会创建一个后台的 SECOND 进程,然后终止原始进程。我想知道是否有办法将现有进程置于后台。一个区别是,如果应用程序是从记录其进程 id 的脚本启动的(可能是为了以后杀死或其他目的),那么新分叉或创建的进程将具有不同的 id,因此任何启动脚本都无法控制,如果你明白我在说什么。
编辑#2:
fork() 对于 OS X 来说不是一个好的解决方案,其中“fork”的手册页说如果使用某些框架或库是不安全的。我试过了,我的应用程序在运行时大声抱怨:“进程已经分叉,你不能安全地使用这个 CoreFoundation 功能。你必须 exec()。”
我对 daemon() 很感兴趣,但是当我在 OS X 上尝试它时,它给出了相同的错误消息,所以我认为它只是 fork() 的一个精美包装器,并且具有相同的限制。
请原谅 OS X 中心主义,它恰好是我眼前的系统。但我确实在寻找所有三个平台的解决方案。
如何在纯 Python 中表达这个 Bash 命令
我在一个有用的 Bash 脚本中有这一行,但我还没有设法将其翻译成 Python,其中“a”是用户输入的要归档的文件的天数:
对于最通用的跨平台元素,我熟悉 os.name 和 getpass.getuser。我也有这个函数来生成相当于 ~/podcasts/current 的所有文件的全名列表:
首先,必须有更好的方法来做到这一点,欢迎提出任何建议。无论哪种方式,例如,“AllFiles('/users/me/music/itunes/itunes music/podcasts')”都会在 Windows 上给出相关列表。大概我应该能够检查这个列表并调用 os.stat(list_member).st_mtime 并将所有超过某个天数的东西移到存档中;我有点坚持这一点。
当然,任何带有 bash 命令简洁的东西也会很有启发性。
如何使用shell脚本比较两个不同目录中同名的文件
在继续使用 SVN 之前,我曾经通过简单地保留一个/develop/
目录并在那里编辑和测试文件,然后将它们移动到该/main/
目录来管理我的项目。当我决定迁移到 SVN 时,我需要确保目录确实是同步的。
那么,编写 shell 脚本 [ bash ] 以递归比较两个不同目录中同名文件的好方法是什么?
注意:上面使用的目录名称仅用于示例。我不建议将您的代码存储在顶层:)。
如何将 PHP 脚本转义到外部编辑器并在之后返回?
具体来说,我有一个 PHP 命令行脚本,在某个时候需要用户输入。我希望能够执行外部编辑器(例如 vi),并在恢复脚本之前等待编辑器完成执行。
我的基本想法是使用临时文件进行编辑,然后检索文件的内容。类似于以下内容:
我怀疑这在 PHP 命令行脚本中是不可能的,但是我希望有某种 shell 脚本技巧可以用来实现相同的效果。
关于如何在其他脚本语言中实现这一点的建议也非常受欢迎。