我不知道这是否属于 SO(因为它是一个编码错误),但我认为你们会更了解所用软件的微妙之处(因此甚至可以考虑 U&L)。
这是最小的代码脚本(请参阅完整脚本的编辑,我这样做是有原因的);
#/bin/bash
nohup {SERVERCOMMAND} > currentOutput.log 2>&1 &
less +F currentOutput.log
Run Code Online (Sandbox Code Playgroud)
它试图做的是在后台运行一个服务器,它输出到一个日志文件。
然后我follow
使用less +F
. 与您一样,要退出此操作,您必须先按ctrl+c才能按Q。
发生的事情是,当我ctrl+c在less
命令中(停止tailing
)时,它会以某种方式杀死nohup
从顶部开始的服务器!其他没有任何影响。我可以shift+f再次开始拖尾日志(由于服务器被终止,因此不会获得新信息),如果我点击Q脚本的其余部分,则脚本的其余部分将正常执行。
你知道为什么会这样吗?如何避免它/我应该使用的其他东西?
PS
服务器程序可能正在侦听^C
,这可能是问题所在;我能做些什么来阻止它吗?就像,当我{SERVERCOMMAND}
自己运行(以阻塞方式)时,我可以点击ctrl+ c,这不会立即杀死它;它打印Received ^C signal, shutting down
(然后杀死自己)。这就是当我^C
进入时发生的事情less
(决赛Received ^C signal, shutting down
被写入日志)。
PPS
我一直在尝试很多东西(都没有成功);
尝试通过更改将 stdin 与脚本断开连接
nohup {SERVERCOMMAND} > …
Run Code Online (Sandbox Code Playgroud)有时您想点击 pdf/image/etc 链接并实际在浏览器中查看它,而不是下载它。
在我最近的试运行中,它是我正在使用的Mantis服务器上的屏幕截图。
当我点击链接时,它会立即提示我保存文件,没有在浏览器中打开它的选项。
我真的不想下载它,在图像查看器中打开它,然后记得在我完成后删除该文件。我希望当我关闭普通图像/pdf 的选项卡时,浏览器可以处理它,例如单击open [image] in new tab
。
我知道浏览器为什么这样做,内容是通过 HTTP 标头提供的Content-Disposition:attachment
,但我确信会有一个高级设置、隐藏的上下文菜单选项或很棒的扩展程序,可以让您查看某人想要您的内容实际保存。
有没有人知道这样的事情?
编辑
似乎 Firefox 有一个附加组件,但我找不到 Chrome 的端口。
我正在尝试修正我的第一个 bash 脚本,并且有一次文件名作为 .bash 传递给脚本$1
。我需要提取没有扩展名的文件名。
目前,我假设所有扩展名都是三个字母,因此我删除了最后 4 个字符以获取文件名:
a="${1:0:-4}"
Run Code Online (Sandbox Code Playgroud)
但我需要能够使用超过三个字符的扩展,就像%~n1
在 Windows 中一样。
有没有办法从参数中提取没有扩展名的文件名?
如何复制整个缓冲区被 less 显示?
无需选择特定文本,我想要全部。
复制到剪贴板是可取的,但如果我们可以将它输出到一个也可以工作的文件。
我试过使用vim
像 :w 这样的通用命令和这里列出的less
命令,但似乎不接受这样的命令。
编辑
我必须能够从内部 做到这一点less
。这让我们说less
是pipe
从一个别名埃德,我有过怎么没有控制less
实际被调用。我只是看到了结果。
我找到了一种保存缓冲区的方法(请参阅下面的答案),所以现在我只需要看看是否有任何方法可以选择和复制。鉴于限制,可能没有。
我有一些.avi
文件有多个音轨,默认音轨是外语。我不是要删除另一首曲目,而只是更改其中的一些曲目,default flag
以便在我打开它时播放曲目 2或其他任何曲目。
我不想创建任何新文件,我不应该做这样的事情,而且使用.mkv
s 这真的很简单。
所以我想知道是否也可以[合理地简单] 修改一个.avi
我来自 Thunderbird/Evolution,当我发送电子邮件时,我习惯了他们的行为,然后想要添加我所说的内容,或者我想到了什么,我可以转到我的已发送文件夹,然后点击回复。
这会在新电子邮件中引用我发送的消息,并且只是重新发送一些添加的内容。
但在 Outlook 中,它似乎太字面地理解了“回复”,并将to
新电子邮件的设置为from
原始电子邮件的设置;我认为它会将这封新电子邮件发送给我,而不是他们。
这是可配置的吗?
我现在正在使用等离子 5 (在 Fedora 22 上,如果这很重要),每当我在锁定屏幕上错误地输入密码时,我必须等待大约五秒钟,然后它才能让我再次尝试在密码输入中输入文本。
我觉得这太长了,想知道是否有人知道这个超时是否在某个配置文件中定义(希望只影响锁定/登录屏幕而不是其他软件,其中超时是一个很好的机器人暴力威慑)
我需要能够向 USB 设备发送一组短字节,但不知道如何发送。
我知道供应商和产品 ID 以及消息字符串(但我需要帮助确定它是 ASCII 字符串还是十六进制字符串)。
有一个叫做usb_modeswitch 的软件似乎可以做到这一点,但它仅限于 Linux。
我在某个地方看到过一个帖子,人们用 mingw 编译了它,但没有提供他们的二进制文件,我自己尝试一下不太舒服。
有人提到使用WinUSB,鉴于其本机包含,这将是理想的选择,但我不知道接口。我确实拥有/可以获得 Visual Studio,但我需要帮助从我在网上看到的内容
中找出要使用的内容。
一个不错的替代方案似乎是带有libusb -win32的PyUSB(usb_modeswitch 使用的端口)。
可以像这样使用写入而不是读取,但我仍然需要知道是否只发送字符串或尝试在调用之前从十六进制表示转换为字节。write()
这是信息:
DefaultVendor=046d
DefaultProduct=c261
MessageEndpoint=01
ResponseEndpoint=01
TargetClass=0x03
MessageContent="0f00010142"
Run Code Online (Sandbox Code Playgroud)
上下文
如果有帮助的话。
我有一台 Logitech G920,它一直出现故障,它拒绝被识别为我的机器上的设备。
无需卸载驱动程序、尝试其他 USB 插槽、未通电插入、删除 LGS 即可。但奇怪的是,它仍然可以在我的笔记本电脑和 Xbox 上运行。
当我遇到这个线程时,我正处于放弃并重新格式化我的机器的边缘:
果然:
这就是我找到这篇文章的地方。一些聪明的人已经在 Linux 上自行解决了这个问题,他们使用软件来要求 USB 调制解调器在驱动程序安装闪存驱动器和互联网提供调制解调器模式之间切换。
上面的信息来自那里,我不知道 的意义'%b/%k'
,我希望这是一个不必要的 usb_modeswitch 特定的东西。
现在我只需要让它在 Windows 中工作。
谢谢你的帮助。
我希望能够获得一个脚本(在启动时运行)来打开konsole
终端。
当它打开时,它会做一些持久的事情(比如更改目录和源 bashrc)并运行一个长时间运行的程序。
如果程序崩溃或我进来了<ctrl+c>
,它会开始接受来自标准输入的命令(例如“向上输入”以再次尝试,就好像它一直是交互式的一样)。
我已经尝试了很多方法来让它工作(我目前只是试图让它ls
并在完成时恢复到交互式);
konsole -e ls
konsole --hold ls
konsole -e /bin/bash -c ls
konsole --hold -e "/bin/bash -c ls"
konsole -e "/bin/bash -i -c ls"
konsole -e /bin/bash -i -c ls
konsole -e "echo ls > /tmp/konsolebash;/bin/bash -i --rcfile /tmp/konsolebash"
echo ls > /tmp/konsolebash
konsole -e "/bin/bash -i --rcfile /tmp/konsolebash"
Run Code Online (Sandbox Code Playgroud)
跟引号有关吗?我不应该使用它们,我应该逃避什么吗?
我什至打算尝试执行bash
吗?
我的想法用完了,但我希望它甚至可以实现(但希望不是我错过的令人尴尬的简单)。
如果konsole
特别是问题,我会赞成成功使用其他终端模拟器的答案(但由于问题具体是关于konsole
我认为我不能给你多汁的勾号)
bash ×3
linux ×3
less ×2
audio ×1
automation ×1
avi ×1
drivers ×1
filenames ×1
images ×1
interactive ×1
kde ×1
kde-plasma-5 ×1
konsole ×1
lock-screen ×1
nohup ×1
script ×1
usb ×1
video ×1
windows-10 ×1