Questions tagged «bash»

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

12
如何“ grep”连续流?
可以grep在连续流上使用吗? 我的意思是说是一条tail -f <file>命令,但grep在输出中仅保留我感兴趣的行。 我已经尝试过,tail -f <file> | grep pattern但是似乎grep只能在tail完成后才能执行,也就是说永远不会执行。
729 linux  bash  shell  grep  tail 

21
在Bash中提取子字符串
给定格式的文件名someletters_12345_moreleters.ext,我想提取5位数字并将其放入变量中。 因此,为了强调这一点,我有一个文件名,其中包含x个字符,然后是一个五位数的序列,该序列由两侧的单个下划线包围,然后是另一组x个字符。我想使用5位数字并将其放入变量中。 我对实现此目标的许多不同方式非常感兴趣。
727 string  bash  shell  substring 

9
检查传递给Bash脚本的参数数量
如果不满足所需的参数计数,我希望Bash脚本打印一条错误消息。 我尝试了以下代码: #!/bin/bash echo Script name: $0 echo $# arguments if [$# -ne 1]; then echo "illegal number of parameters" fi 由于某些未知原因,我遇到了以下错误: test: line 4: [2: command not found 我究竟做错了什么?


7
在bash脚本中set -e是什么意思?
我正在研究脚本从该脚本的Debian存档(.deb)文件解压缩之前执行的preinst文件的内容。 该脚本具有以下代码: #!/bin/bash set -e # Automatically added by dh_installinit if [ "$1" = install ]; then if [ -d /usr/share/MyApplicationName ]; then echo "MyApplicationName is just installed" return 1 fi rm -Rf $HOME/.config/nautilus-actions/nautilus-actions.conf rm -Rf $HOME/.local/share/file-manager/actions/* fi # End automatically added section 我的第一个查询是关于这一行的: set -e 我认为脚本的其余部分非常简单:它检查Debian / Ubuntu软件包管理器是否正在执行安装操作。如果是,它将检查我的应用程序是否刚刚安装在系统上。如果已安装,脚本将显示消息“ MyApplicationName已安装”并结束(return …
713 linux  bash  shell  sh 


9
在bash中使用单个命令为shell变量分配默认值
我在bash(3.00)shell脚本中对变量进行了大量测试,如果未设置变量,则它会分配默认值,例如: if [ -z "${VARIABLE}" ]; then FOO='default' else FOO=${VARIABLE} fi 我似乎想起了在一行中执行此操作的某种语法,类似于三元运算符,例如: FOO=${ ${VARIABLE} : 'default' } (尽管我知道那行不通...) 我疯了还是存在类似的东西?
680 bash  shell 

19
如何从项目中删除所有.pyc文件?
我已经在一个相当大的项目中重命名了一些文件,并希望删除它们留下的.pyc文件。我尝试了bash脚本: rm -r *.pyc 但这并没有像我想的那样遍历文件夹。我究竟做错了什么?
677 bash 



7
什么时候需要在外壳变量周围花括号?
在shell脚本中,{}何时扩展变量时使用? 例如,我看到了以下内容: var=10 # Declare variable echo "${var}" # One use of the variable echo "$var" # Another use of the variable 是否存在重大差异,还是仅仅是样式?是一个比另一个更好的选择吗?


25
使用bash和regex在一行中查找并杀死一个进程
我经常需要在编程期间杀死一个进程。 我现在的方式是: [~]$ ps aux | grep 'python csp_build.py' user 5124 1.0 0.3 214588 13852 pts/4 Sl+ 11:19 0:00 python csp_build.py user 5373 0.0 0.0 8096 960 pts/6 S+ 11:20 0:00 grep python csp_build.py [~]$ kill 5124 如何自动提取进程ID并在同一行中将其杀死? 像这样: [~]$ ps aux | grep 'python csp_build.py' | kill <regex that …
647 regex  bash  terminal  awk 

21
在Bash中将字符串拆分为数组
在Bash脚本中,我想将一行分割成几部分,并将它们存储在数组中。 该行: Paris, France, Europe 我想将它们放在这样的数组中: array[0] = Paris array[1] = France array[2] = Europe 我想使用简单的代码,命令的速度无关紧要。我该怎么做?
640 arrays  bash  split 


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.