Questions tagged «shell»

Shell是一种软件,它使用户通常可以通过在命令行中键入来与操作系统进行交互。

3
Bash脚本,字符串未正确替换为转义的$和&字符
我创建了一个shell脚本,该脚本以字符串作为输入。如果字符串包含$或&,则需要用\$和替换这些字符\&。我可以用sed命令做到这一点。之后,我想用该对应的字符串替换特定文本文件中的单词。 请参阅本节以获取更多说明。 这是我的档案。 test.txt hello my root password is root. 现在,我想用字符串更改词根。该字符串可以是任何可以包含特殊字符(如$或)的东西&。 如果我想root用字符串替换my&rootpa$$,那么它应该看起来像my\&rootpa\$\$文本文件中的字符串。 这是我的外壳 #!/bin/bash dothis(){ rootpass=$(echo "$1" | sed -r 's/\$/\\$/g'); rootpass=$(echo "$rootpass" | sed -r 's/\&/\\&/g'); echo $rootpass; sed -i "s/root/$rootpass/g" test.txt } dothis "my&rootpa$$"; 该脚本可以正常运行echo $rootpass,也就是说,当我回显字符串时,它将显示my\&rootpa\$\$。 但是在文件中看起来my&rootpa$$不是my\&rootpa\$\$。脚本出了什么问题? 请指教。
3 linux  bash  shell  sed 

2
使用ffmpeg交叉淡化视频和音频
到目前为止,使用ffmpeg在2个视频之间进行超级淡入淡出的交叉淡入淡出的效果使我到目前为止,但是现在,我已经尝试了许多解决方案,并且看到那里的每个SO链接,是时候向大家寻求帮助了。 我正在尝试同时淡入淡入淡出2秒钟ts格式的2个视频和音频和视频的视频。 这些步骤是: 添加复杂的滤镜黑屏 在9秒钟后淡出视频1,淡入时间为1秒 在9秒钟时淡入视频2,淡入时间为1秒 修剪黑色滤镜输出至19秒 这仅适用于视频,效果很好,但是当我尝试添加音频时,我无法越过此错误消息: 未连接到任何目的地的滤波器的滤波器实例“ Parsed_asetpts_4”的音频类型的输出垫“默认” 看来我没有正确连接音频输出。我想我需要更改[over]行以包含音频。但是我该怎么做呢? `ffmpeg -i vid1.ts -i vid2.ts -f lavfi -i color=black -filter_complex \ "[0:v]format=pix_fmts=yuva420p,\ fade=t=out:st=9:d=1:alpha=1,setpts=PTS-STARTPTS[v0];\ [0:a]\ afade=t=out:st=9:d=1,asetpts=PTS-STARTPTS[a0];\ [1:v]format=pix_fmts=yuva420p,\ fade=t=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+9/TB[v1];\ [1:a]\ afade=t=in:st=0:d=1,asetpts=PTS-STARTPTS+9/TB[a1];\ [a0][a1]amix=inputs=2;\ [2:v]scale=720x406,trim=duration=19[over];\ [over][v0]overlay[over1];\ [over1][v1]overlay=format=yuv420[outv]" -vcodec libx264 -y -map [outv] final.ts`
3 bash  video  shell  ffmpeg 

1
如何在WUBI安装模式下永久挂载ntfs驱动器?
我在C:\驱动器上安装了Windows 7作为主要操作系统。我有另一个ntfs分区D: Ubuntu是使用WUBI安装在C:\ Ubuntu上的,这可以通过“ / host”访问C:\。D:\已挂载,并且可以通过/ media / some-hash进行访问,因此每次我重新启动计算机时,D:\都会得到一个不同的类似于哈希的名称。当我尝试链接到位于D:\中的文件和文件夹时,这种整体安排会导致问题,每次重新启动后这些链接都变得无用。 我知道我需要通过编辑/ etc / fstab永久挂载D:\驱动器。但是我无法弄清楚我应该怎么做。 对于菜鸟的任何具体友好的帮助将不胜感激。
3 linux  ubuntu  shell  mount  fstab 

2
基于Web的交互式MAN页[关闭]
因此,在这个网站上,您键入了unix命令,它将命令分解为参数以解释做什么。我想它是基于MAN的,但是我不确定。我丢失了书签,有人知道吗?THKS!
3 shell  man 

3
切换回bash后无法访问root
我刚接触Linux并使用Debian7。我正在使用bash,但通过使用chsh尝试了zsh。最初可能输入了错误的Shell名称,但最终成功切换到zsh。 现在我切换回bash但无法访问root 当我按su和密码时,它返回“无法执行zsh:无此类文件或目录”,而显然我正在使用bash。 此外,当我改回zsh时,它仍然说“无法执行zsh ...”。 有人可以帮忙吗? 谢谢! 紫罗兰
3 linux  bash  debian  shell  zsh 


1
在管道中获取$ PIPESTATUS
我使用bash脚本来检查cron-jobs的输出: some-cron-script.sh | check_pipe.sh check_pipe.sh读取管道,如果在里面找到已定义的关键字(如“错误”或“失败”),它会发送一封电子邮件。 现在我想检查check_pipe.sh中第一个脚本的退出状态。不幸的是,执行check_pipe.sh时尚未设置$ {PIPESTATUS [@]}。如果我在一个新命令中询问管道之后的PIPESTATUS,会给出两个值 - 但对我来说太迟了。有帮助吗? 谢谢!

2
每天在特定时间在Unix中运行shell脚本
我有一个shell脚本 task.sh 这需要在每天特定时间在Unix的后台运行。 我知道 nohup 在后台运行脚本很有用。但是担心如何安排此脚本在指定时间每天运行。 注意: 我不是root用户。我没有权限 crontab 命令。 任何帮助将不胜感激。

1
csh cd alias:如何在没有提供参数时消除错误
我熟悉bash,但我的作品需要csh。在我的.cshrc中,我创建了这个别名: alias cd 'cd \!:1; ls -l' 除了一种情况外,它的效果非常好:当我没有任何参数的cd时: cd 在这种情况下,我得到“ 不好! arg选择器 “错误。我如何消除这个错误?我感谢任何帮助来克服这个问题。谢谢。
2 linux  unix  shell  alias  csh 

1
如何从console2(Windows 8.1)中运行提升的shell?可能?
我来自Linux,几天来我一直试图从Console2中运行一个升级的shell(powershell,ipython解释器和bash)。但是,它总是弹出一个新的cmd.exe窗口,这不是我想要的,我想从我所在的同一个窗口中的同一个选项卡中下拉到提升的shell中。我怎样才能完成这个? 我刚刚安装了sudowin,它有点像我想要的,但它只是打开一个新的cmd.exe窗口,正如我所说。我跑不了 sudo .\Console.exe 但是,它只是说 Command not allowed 没有提示我的密码,我也无法运行 Console.exe 通过右键单击管理员,它只是立即删除权限。 也许我被宠坏了,但是cmd.exe终端模拟器很难看,而且我真的想要使用Console2(它是我发现的最漂亮的),并且在我需要的时候进入升高的shell。 我无法想象试图远程进行管理工作,这是一个噩梦,不得不打电话,如“管理员cmd提示符弹出你的结尾?”。 Windows已经做了很多工作,我尊重这一点,但是,谢谢,谈论忽略基础知识。

0
使用Linux shell脚本合并xml文件
我有2个文件分别名为file1.xml和file2.xml。文件的内容是: file1.xml : <EJB:Service> <EJB:ServiceId>123</EJB:ServiceId> <EJB:ServiceName>Checkin</EJB:ServiceName> <EJB:JndiName>datasource</EJB:JndiName> <EJB:HomeClassName>local</EJB:HomeClassName> <EJB:ServerName>Weblogic12345</EJB:ServerName> </EJB:Service> <EJB:Service> <EJB:ServiceId>456</EJB:ServiceId> <EJB:ServiceName>local</EJB:ServiceName> <EJB:JndiName>source</EJB:JndiName> <EJB:HomeClassName>local</EJB:HomeClassName> <EJB:ServerName>Weblogic</EJB:ServerName> </EJB:Service> file2.xml : <EJB:Service> <EJB:ServiceId>123</EJB:ServiceId> <EJB:ServiceName>Booking</EJB:ServiceName> <EJB:JndiName>class</EJB:JndiName> <EJB:HomeClassName>Home</EJB:HomeClassName> <EJB:ServerName>Weblogic</EJB:ServerName> </EJB:Service> 我希望输出为: <EJB:Service> <EJB:ServiceId>123</EJB:ServiceId> <EJB:ServiceName>Booking</EJB:ServiceName> <EJB:JndiName>class</EJB:JndiName> <EJB:HomeClassName>Home</EJB:HomeClassName> <EJB:ServerName>Weblogic</EJB:ServerName> </EJB:Service> <EJB:Service> <EJB:ServiceId>456</EJB:ServiceId> <EJB:ServiceName>local</EJB:ServiceName> <EJB:JndiName>source</EJB:JndiName> <EJB:HomeClassName>local</EJB:HomeClassName> <EJB:ServerName>Weblogic</EJB:ServerName> </EJB:Service> 如何使用Linux shell脚本合并这些文件以获得所需的输出?
2 linux  bash  shell  xml 

1
如何在Windows中记录终端会话?
Linux和Unix都有 script 命令 ,这非常有用: script命令是一个记录终端的Unix实用程序 会话。 1 scriptreplay命令提供重放功能 脚本。[2]默认情况下,会话在文件名typescript中捕获; 使用空格在脚本命令后指定不同的文件名 和文件名如下:script recorded_session。 ttyrec程序提供相同类型的功能和优惠 几个绑定。 可以使用在线服务共享录制的shell会话。[3]该 以通常的格式记录的会话优势 截屏是可以轻松复制/粘贴shell指令 播放器屏幕。 与Windows类似的是什么? 也可以看看: 用于将交互式bash会话记录到shell脚本的工具 在linux中记录SSH终端 为了实用 script 命令。


5
如何从“修复文件系统”错误中恢复Linux
不幸的是,我的妈妈做了一些我不知道的事情,Linux处于命令行模式。退出shell并进入桌面的关键是什么? 我试过了 Alt + F2 Alt + F6 Ctrl+ Alt+F2 Ctrl+ Alt+Delete 出口 没有人为我工作。它转到黑壳并告诉我输入登录名和root密码。当我输入它时,它显示我的红色修复文件系统。 Alt+ F2显示一个空白的黑色页面,Alt+ F1将返回此shell。 我的版本是openSUSE 11.1。
2 linux  shell  opensuse 

1
如何创建多个文件夹?
如何在一个命令中在文件夹中创建多个子文件夹。 例如,我想创建: /home/user/*create dir1*/*create dir2*/*create dir3*/ 提供,我没有dir1。而且我不能使用3命令,也不能使用shell脚本。此创建必须在一个shell命令中。 $ mkdir /home/user/TEST1/TEST2/TEST3/ 不起作用,没有这样的文件错误。如果 $ mkdir /home/user/TEST1/ $ mkdir /home/user/TEST1/TEST2/ $ mkdir /home/user/TEST1/TEST2/TEST3/ 那项工作,但我无法实现该解决方案。我只需要使用一个命令。 你能帮我解决这个问题吗?
2 linux  bash  shell  dir  mkdir 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.