Questions tagged «bash»

Bash是来自GNU Project的类Unix操作系统的免费外壳。

3
ffmpeg / avconv强制缩放的输出可被2整除
我用avconv(又名ffmpeg)录制桌面,然后将其缩放到720p。 我最近添加了我的脚本,以便他们可以使用xwininfo选择一个窗口,它将专门记录该窗口。 但是,如果输出格式不能被2整除,则编码器会出现异常,并且我无法获得视频。 有没有办法在ffmpeg内部修复此问题,所以我不必在bash中进行大量手动数学操作即可设置缩放比例值? 如果它们不均匀,是否可以使比例过滤器在宽度/高度中减去/增加一个?(回合?) 是否可以在可以完成此操作的原始比例之后应用另一个过滤器?(这将对输入大小不均且没有缩放比例的视频进行舍入) #!/bin/bash avconv \ -f x11grab -r $fps -s $capturesize -i :0.0$offset \ -vcodec libx264 \ -vf scale=-1:720 \ -pre:v lossless_ultrafast \ -threads 4 \ -y $@ 一些旧的邮件列表建议round()您可以在过滤器中使用的功能,但我似乎语法不正确。如果它能正常工作scale=round(iw,2):round(ih,2),最后应用一个过滤器将立即解决我的所有问题。iw而且ih似乎不起作用。
10 bash  ffmpeg 

4
要知道哪个IP使用ssh在linux中执行了某个命令
有一个服务器,许多用户可以使用ssh访问该服务器。我试图找出哪个用户执行了某个命令。 我可以知道当前正在使用来访问服务器的用户列表。我也可以知道使用来who 执行的命令列表history。 但是如何知道哪个用户cp file1.sh file2.sh在服务器中执行了命令呢?用户已执行命令并注销

1
空格通过回声折叠>>
我正在创建一个脚本,该脚本读取文件的内容,操作内容并将其追加到另一个文件(特别是虚拟主机文件)。输出文件中的格式和空格很重要,但是当我编写内容时,空格会被删除。 VHOST_PATH="/etc/apache2/extra/httpd-vhosts.conf" TEMPLATE_PATH="./template.conf" TEMPLATE=$(<TEMPLATE_PATH) # manipulating $TEMPLATE echo $TEMPLATE #outputs correct whitespace echo $TEMPLATE >> $VHOST_PATH #does not output correct whitespace 所以第一次回声会产生类似 <VirtualHost *:80> ServerAdmin webmaster@domain DocumentRoot "root/web" ServerName domain ErrorLog "root/logs/error_log" </VirtualHost> 但是进入文件的字符串是 <VirtualHost *:80> ServerAdmin webmaster@domain DocumentRoot "root/web" ServerName domain ErrorLog "root/logs/error_log" </VirtualHost> 在追加到目标文件时如何保留空白?我已经进行了搜索,但是所有类似的问题都不会在不重写脚本的情况下应用于我的脚本。
10 bash 

1
为什么某些命令(通常很长)在bash和zsh中出现乱码?
很多时候,当我在bash或zsh中输入一个长命令(这是我肯定看到过的仅有的两个shell)时,光标会弯曲到我输入的字符串中间的某个地方,谁能解释这是为什么,对此是否可以做些什么? 我已经注意到,当我浏览外壳程序的历史记录(使用箭头键)时经常会发生这种情况,当我遇到一个较长的条目时,较长的新条目将与先前的条目混合在一起,使文本显示乱码。 我有一个带有短字符串的示例,我刚刚注意到: 历史记录包含: mkdir sune1 mkdir sune2 如果我导航到mkdir sune1,然后再导航到,mkdir sune2我希望我的命令行是mkdir sune2(因为这是我现在导航到的命令行)-但是我却得到了mkdir1sune2。 多年来,我经常注意到这一点,但永远不要让它困扰我太多,但我认为现在是时候改变了!那么,有什么想法吗?
10 bash  shell  zsh 

2
监视Folder OSX进行文件更改,然后运行bash脚本[重复]
这个问题已经在这里有了答案: 7年前关闭。 可能重复: 在OS X和Ubuntu上实时监视文件系统 我正在寻找一种监视OSX中本地目录的有效方法,如果该目录中的任何文件已更改,请运行bash脚本以将文件提交到github。 有没有推荐的工具来监视目录中的文件更改,然后触发操作,即bash脚本?
10 macos  bash  github 

2
bash <<语法是什么意思?
像这样安装Ruby Version Manager(RVM): bash -s stable &lt; &lt;(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer) 我理解first &lt;是什么意思(将bash脚本提供给bash解释器),我对此感到困惑&lt;(...)。因此,括号在这里的作用是小于号。在哪种情况下,我们可以使用相同的语法? 我试图在互联网上进行挖掘,发现了这样的问题/programming/2188199/bash-double-or-single-bracket-parentheses-curly-braces以及在ubuntuforums上的此问题:http:// ubuntuforums .org / showthread.php?p = 7803008但仍然不知道为什么要使用这些括号以及为什么要两次使用输入重定向。 bash &lt; curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer 不一样吗? 谢谢。
10 bash  syntax 

3
如何直接从外壳运行python程序?
我写了一个剧本。当它启动时,它不会停止,并且不断从Internet获取数据。我可以这样称呼它: cd /User/Desktop/project/internetScanner/ python3 main.py start 但是我想从这样的终端直接在目的地内调用它: internetScanner start 我该怎么办?

1
重定向时输出不同
$ mysql -e 'select a,b from tablefoo' databasename 产量 +---+---+ | a | b | +---+---+ | 1 | 0 | | 2 | 1 | +---+---+ 而 $ mysql -e 'select a,b from tablefoo' databasename &gt; file 产生一个file包含 a b 1 0 2 1 (其中的制表符位于每行字母数字字符之间)。 我认为重定向不应该更改输出。为什么会得到两个不同的结果? 编辑: William Jackson的答案说,这是mysql的功能:输出格式取决于输出是否被重定向。但是,这不能回答我的问题。mysql如何“知道”输出是否被重定向?重定向不只是获取输出,还可以将其重定向到某个地方吗?这不是MySQL看不见的吗?

2
如何使“ bash -x”(调试模式)递归到源脚本中?
我正在尝试调试bash在Linux登录初始化时的作用。我已经读过“ bash -x”将使bash打印出正在执行的操作,但不会像“ set -x”那样在源文件中打印命令。我不能使用“ set -x”,因为初始化会在调用它之前运行。“ bash -x”似乎可以在OS X上正常运行,但这可能是由于bash版本所致。 Linux:3.2.25 OS X:3.2.48 这是Linux上非递归行为的摘录: bash -l -x -c 'echo 1' # ... snip ... + for i in '/etc/profile.d/*.sh' + '[' -r /etc/profile.d/vim.sh ']' + '[' '' ']' + . /etc/profile.d/vim.sh + for i in '/etc/profile.d/*.sh' + '[' -r /etc/profile.d/which-2.sh …
10 linux  macos  bash 


2
用bash反向历史记录搜索,然后按箭头键会导致光标显示在错误的位置
我注意到很多次,当我通过CTRL+ 从命令行进行反向历史搜索时r,如果要编辑命令,有时在按箭头键或输入CTRL+ a或CTRL+ 时光标会跳到错误的位置e。它跳转到的特定位置似乎是一个偏移量,该偏移量等于中设置的命令行提示符的大小PS1。 由于光标的实际位置与屏幕上显示的位置不同,因此会产生困难。将来对命令的编辑将呈现为光标所在的位置,但实际命令将保留正确的位置,而不会发生任何跳转。 有谁知道这是什么原因或如何解决? 编辑:如果我PS1在问题的末尾添加换行符似乎消失了。但是,我宁愿在提示的同一行输入命令。
10 bash 



5
如何使用Shell脚本比较两个文件?
给定两个文件,我想编写一个shell脚本,该脚本从file1中读取每一行,并检查它是否在file2中。如果找不到一行,则应输出两个不同的文件并退出。这些文件可以包含单词数字或任何其他内容。例如 : 文件1: Hi! 1234 5678 1111 hello 文件2: 1111 5678 1234 Hi! hello 在这种情况下,两个文件应该相等。如果file2具有“ hello !!!” 而不是“ hello”,则文件是不同的。我正在使用bash脚本。我怎样才能做到这一点。我不需要嵌套循环来执行此操作并不重要,但这是我认为的唯一方法。谢谢你的帮助。
10 bash  unix  script 

5
Ubuntu / Gnome:在特定的工作区中打开应用程序
如何告诉应用程序在特定的工作区中打开? 更多信息: 我希望在工作区2中具有C ++ IDE,在工作区3中具有Java IDE,在工作区4中具有电子邮件,浏览器和其他功能。我还使用在登录时执行的shell脚本: #!/bin/bash gnome-terminal &amp; # WS 1 netbeans-6-9-1 &amp; # WS2 qtcreator-2-0-1 &amp; # WS 3 firefox &amp; # WS 4 thunderbird &amp; # WS 4 当然,当前所有这些都将在当前工作空间中打开...我是否可以指定每个命令应在哪个工作空间中开始? 提前致谢!

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.