Questions tagged «bash»

有关为Bash命令外壳编写的脚本的问题。对于具有错误/语法错误的shell脚本,请在此处发布之前,使用shellcheck程序(或在Web shellcheck服务器中的https://shellcheck.net)进行检查。有关Bash交互使用的问题更可能是Super User而不是Stack Overflow上的话题。

18
睡到特定的时间/日期
我希望我的bash脚本在特定时间之前保持睡眠状态。因此,我想要一个像“ sleep”这样的命令,该命令不需要间隔,而是要有一个结束时间,然后一直睡眠到那时。 “ at”守护程序不是解决方案,因为我需要阻止正在运行的脚本,直到某个日期/时间为止。 有这样的命令吗?
89 bash  sleep  wait 

13
在bash脚本仍在运行时强制将输出刷新到文件
我有一个小脚本,每天由crontab使用以下命令调用: /homedir/MyScript &> some_log.log 此方法的问题在于,仅在MyScript完成后才创建some_log.log。我想在程序运行时将程序的输出刷新到文件中,以便执行以下操作 tail -f some_log.log 并跟踪进度等。
89 bash  file  flush 

5
在bash中的if-condition中使用正则表达式
我想知道在bash的if子句中使用正则表达式的一般规则吗? 这是一个例子 $ gg=svm-grid-ch $ if [[ $gg == *grid* ]] ; then echo $gg; fi svm-grid-ch $ if [[ $gg == ^....grid* ]] ; then echo $gg; fi $ if [[ $gg == ....grid* ]] ; then echo $gg; fi $ if [[ $gg == s...grid* ]] ; then …
88 regex  bash 

4
停止shell通配符扩展?
有什么方法可以让已编译的命令行程序告诉bash或csh它不想扩展其参数中的任何通配符? 例如,可能需要像这样的shell命令: foo * 简单地返回该字符的数字ASCII值。
88 bash  wildcard 

12
在bash中遍历元组?
是否有可能在bash中遍历元组? 例如,如果以下方法有效,那就太好了: for (i,j) in ((c,3), (e,5)); do echo "$i and $j"; done 有没有一种解决方法,可以通过某种方式让我遍历元组?
88 bash  for-loop 

12
强制bash扩展从文件加载的字符串中的变量
我试图找出如何使bash(强制?)扩展字符串(从文件加载)中的变量。 我有一个名为“ something.txt”的文件,其内容如下: hello $FOO world 然后我跑 export FOO=42 echo $(cat something.txt) 这将返回: hello $FOO world 即使设置了变量,它也不会扩展$ FOO。我无法评估或获取文件-因为它将尝试执行该文件(它本身不能执行-我只希望插入包含变量的字符串)。 有任何想法吗?
88 linux  bash  shell  unix 


6
可以在zsh中使用Bash制表符完成脚本吗?
我有一个用于Apache Hadoop的Bash制表符补全脚本。通常,我将zsh用作日常外壳。当我需要它时,它往往看上去很像bash,但是看起来它们之间的制表符完成系统根本不同。有没有一种简单的方法可以“转换”现有的bash-tab-completion定义以使其在zsh中工作?我不想为此花很多时间,但是如果简单的话,我会省些力气。


9
如何只为特定类型的文件区分目录?
如果要递归目录diff但仅针对特定文件类型,我对diff命令有疑问,该怎么办? 我尝试使用exclude选项,但只能使用一种模式: $ diff /destination/dir/1 /destination/dir/2 -r -x *.xml 用命令我只能排除XML文件类型,即使是在文件夹中的图像类型(文件png,gif,jpg)txt,php等 如何仅区分某些文件类型。
87 linux  bash 

3
Bash脚本的语义?
每次我需要一些小东西时,我都会通过谷歌搜索来“学习” Bash,这比我所知道的任何其他语言都多。因此,我可以将看起来有用的小脚本拼凑在一起。不过,我并不真正知道发生了什么事情,我希望的是更正式的介绍bash作为编程语言。例如:什么是评估顺序?范围规则是什么?打字纪律是什么,例如,一切都是字符串吗?程序的状态是什么?它是字符串到变量名的键值分配吗?还有更多,例如堆栈吗?有堆吗?等等。 我本来想咨询GNU Bash手册以获得这种见解,但这似乎并不是我想要的。它更多是语法糖的清单,而不是核心语义模型的解释。在线的百万个“ bash教程”更糟。也许我应该先学习sh,然后再将Bash理解为一种语法糖?不过,我不知道这是否是一个准确的模型。 有什么建议么? 编辑:我被要求提供理想情况下我正在寻找的示例。我认为“形式语义学”的一个极端例子是这篇关于“ JavaScript本质”的文章。Haskell 2010报告也许是一个不太正式的例子。

8
获取网址列表的HTTP状态代码的脚本?
我有需要检查的URL列表,以查看它们是否仍然有效。我想写一个为我做的bash脚本。 我只需要返回的HTTP状态代码,即200、404、500等。而已。 编辑请注意,如果页面显示“ 404 not found”,但返回200 OK消息,则存在问题。这是配置错误的Web服务器,但您可能不得不考虑这种情况。 有关更多信息,请参阅检查URL是否转到包含文本“ 404”的页面。

10
使用Bash按列划分命令输出?
我想做这个: 运行命令 捕获输出 选择一条线 选择该行的一列 举例来说,假设我想从中获取命令名称$PID(请注意,这只是一个例子,我并不是在建议这是从进程ID中获取命令名称的最简单方法-我的真正问题是另一个我无法控制其输出格式的命令)。 如果我跑步,ps我会得到: PID TTY TIME CMD 11383 pts/1 00:00:00 bash 11771 pts/1 00:00:00 ps 现在我做的ps | egrep 11383,并得到 11383 pts/1 00:00:00 bash 下一步:ps | egrep 11383 | cut -d" " -f 4。输出为: <absolutely nothing/> 问题是cut将输出剪切单个空格,并ps在第二和第三列之间添加一些空格以保持表的相似性,因此cut选择一个空字符串。当然,我可以cut选择第7个字段而不是第4个字段,但是我怎么知道,特别是当输出是可变的且事先未知时。
87 linux  bash  pipe 

3
VS Code终端如何在Windows(WSL)的Ubuntu(Ubuntu)上使用Bash?
虽然其他问题涉及如何使用git-bash之类的问题,但让新的WSL成为VS Code的终端是不一样的:它使您可以访问运行在实际Ubuntu Linux子系统上的bash,而不是git-bash。在Windows子系统上运行的bash终端。 那么,如何使它作为VS Code终端起作用,特别是如何使它作为功能性dev环境终端起作用? 不幸的是,与git-bash不同,这并不是那么简单,因为WSL和Windows本身之间存在交互作用,因此WSL中的Ubuntu Linux配置可以提供一些陷阱,例如NPM尝试从Windows Program Files目录中运行(但失败)。路径方面的问题,以及诸如Compass之类的某些软件包因未必是那些不习惯在Linux上进行开发的人而立即显而易见的原因而失败。为VS Code拥有可靠的WSL终端环境的简单方法是什么,当通过apt-get或安装时,将运行最常用的工具npm?

4
Unix Shell脚本截断大文件
我正在尝试编写一个Unix脚本,它将截断/清空一个文件,当文件达到3GB的空间时,该文件将被应用程序连续写入/打开。我知道以下命令可以做到: cp /dev/null [filename] 但是我将在生产环境中自动将其作为cron作业-只是在此处发布以查看你们在执行类似操作时是否遇到任何问题。
87 bash  shell  truncate 

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.