我希望我的脚本能够完成scp,即使输入了CTRL+C。我已经尝试使用陷阱来禁用CTRL+C,但是当scp正在进行时它不起作用。scp立即终止。有什么办法吗?代码如下。很简单。#!/bin/bashtrap''SIGINTSIGTERMscp-quser@server:/backup/large_file.txt/local/dir/更新:还要确保您的脚本顶部有“set-m”。 最佳答案 将它放在后台的子shell中以断开它与终端的连接。(scp...&)编辑:您可能希望将任何错误重定向到一个文件。
我有这个名为wsjs.sh的脚本:#!/bin/bashWS=/home/user/wsjscd$WSnohupatom.&gnome-terminalgruntwatch如果我在bash中运行它:./wsjs.sh然后atom编辑器,gnome-terminal分别启动,当前bash显示:user@ubuntu:~$./wsjs.pwdnohup:appendingoutputto‘nohup.out’Running"watch"taskWaiting...现在如果我按下ctrl+c,gruntwatch退出,但原子编辑器也关闭了。...这很奇怪。我在bash中手动输入了每个命令,并
我有这个名为wsjs.sh的脚本:#!/bin/bashWS=/home/user/wsjscd$WSnohupatom.&gnome-terminalgruntwatch如果我在bash中运行它:./wsjs.sh然后atom编辑器,gnome-terminal分别启动,当前bash显示:user@ubuntu:~$./wsjs.pwdnohup:appendingoutputto‘nohup.out’Running"watch"taskWaiting...现在如果我按下ctrl+c,gruntwatch退出,但原子编辑器也关闭了。...这很奇怪。我在bash中手动输入了每个命令,并
我正在运行以下脚本以在远程服务器上开始捕获并随后下载文件。目前我必须使用Ctrl+C暂停它并手动退出。我如何替换交互并定义触发器来终止tcpdump或捕获Ctrl+C并将其传递到远程服务器?spawnssh"$user_ssh\@$ssh_server"expect{"*password"{send"$pass\n";exp_continue}"root\@*"{}timeout{puts"timeoutexpectingpasswordorbash";exit1}}send"sudotcpdump-i$intf-s0-w$file-v\n";interactspawnscp"$use
我正在运行以下脚本以在远程服务器上开始捕获并随后下载文件。目前我必须使用Ctrl+C暂停它并手动退出。我如何替换交互并定义触发器来终止tcpdump或捕获Ctrl+C并将其传递到远程服务器?spawnssh"$user_ssh\@$ssh_server"expect{"*password"{send"$pass\n";exp_continue}"root\@*"{}timeout{puts"timeoutexpectingpasswordorbash";exit1}}send"sudotcpdump-i$intf-s0-w$file-v\n";interactspawnscp"$use
我最近在我的ArchLinux/KDE4机器上安装了EclipseHelios(JavaDevelopersEdition,vanilla,来自www.eclipse.org)以帮助在大型Java项目中导航。问题是,Eclipse中的许多键绑定(bind)倾向于使用Ctrl+Shift作为修饰符,这与我用来切换键盘布局的组合相同。因此,如果我按下,比如说,Ctrl+Shift+T,我看不到打开类型对话框;西里尔字母“e”只是插入到编辑器中(这与我按Ctrl+Shift,然后按T相同)。我知道我可以更改键绑定(bind)(对于Eclipse和布局切换器),但也许有人知道如何使Ctrl+S
我最近在我的ArchLinux/KDE4机器上安装了EclipseHelios(JavaDevelopersEdition,vanilla,来自www.eclipse.org)以帮助在大型Java项目中导航。问题是,Eclipse中的许多键绑定(bind)倾向于使用Ctrl+Shift作为修饰符,这与我用来切换键盘布局的组合相同。因此,如果我按下,比如说,Ctrl+Shift+T,我看不到打开类型对话框;西里尔字母“e”只是插入到编辑器中(这与我按Ctrl+Shift,然后按T相同)。我知道我可以更改键绑定(bind)(对于Eclipse和布局切换器),但也许有人知道如何使Ctrl+S
最终目标:WAITING后台作业完成的BASH脚本不会在第一次Ctrl-c时中止;相反,它需要第二次Ctrl-c才能退出。我很清楚BASH内置的trap是如何工作的。您可以:用它来完全忽略一个信号(例如,trap''2)……或者使用它在信号原函数允许发生之前执行任意命令(例如,trapcmd2,其中cmd在父级之前运行脚本将因SIGINT)而中断所以问题归结为:HowcanIeffectivelycombine1&2together,i.e.,preventtheend-resultasignalwouldleadto(1--e.g.,stopscriptcancellingdueto
最终目标:WAITING后台作业完成的BASH脚本不会在第一次Ctrl-c时中止;相反,它需要第二次Ctrl-c才能退出。我很清楚BASH内置的trap是如何工作的。您可以:用它来完全忽略一个信号(例如,trap''2)……或者使用它在信号原函数允许发生之前执行任意命令(例如,trapcmd2,其中cmd在父级之前运行脚本将因SIGINT)而中断所以问题归结为:HowcanIeffectivelycombine1&2together,i.e.,preventtheend-resultasignalwouldleadto(1--e.g.,stopscriptcancellingdueto
我正在研究一些脚本(在我工作的公司),这些脚本被加载/卸载到管理程序中,以便在事件发生时触发一段代码。实际卸载脚本的唯一方法是按Ctrl-C。我正在用Python编写一个函数来自动执行该过程一旦它在程序输出中看到字符串"done",它就应该终止vprobe。我正在使用subprocess.Popen来执行命令:lineList=buff.readlines()cmd="vprobe/vprobe/myhello.emt"p=subprocess.Popen(args=cmd,shell=True,stdout=buff,universal_newlines=True,preexec_f