Questions tagged «shell»

术语“外壳”是指通常与Unix和Linux操作系统相关联的一类基于文本的交互式命令解释器。对于有关shell脚本的问题,请使用更具体的标签,例如'bash','powershell'或'ksh'。没有特定标签的情况下,应该假定使用便携式(符合POSIX的)解决方案,尽管最好另外使用“ posix”或“ sh”。

16
运行shell命令并捕获输出
我想编写一个函数,它将执行shell命令并以字符串形式返回其输出,无论它是错误还是成功消息。我只想获得与命令行相同的结果。 能做到这一点的代码示例是什么? 例如: def run_command(cmd): # ?????? print run_command('mysqladmin create test -uroot -pmysqladmin12') # Should output something like: # mysqladmin: CREATE DATABASE failed; error: 'Can't create database 'test'; database exists'
905 python  shell  subprocess 

30
Shell命令对整数求和,每行一个?
我正在寻找一个命令,该命令将接受(作为输入)多行文本,每行包含一个整数,并输出这些整数的总和。 作为背景知识,我有一个包含时序测量的日志文件。通过grepping相关行和sed重新格式化,我可以列出该文件中的所有时间。我想算出总数。我可以将此中间输出通过管道传递给任何命令,以进行最终求和。我过去一直使用expr过,但是除非它以RPN模式运行,否则我认为它不能解决这个问题(即使那样也很棘手)。 如何获得整数的总和?
866 shell 




27
Shell命令到tar目录,不包括某些文件/文件夹
是否有一个简单的shell命令/脚本,该命令/脚本支持排除某些文件/文件夹的归档? 我有一个目录,该目录需要与一个子目录一起存档,该子目录包含许多不需要备份的非常大的文件。 不完全解决方案: 该tar --exclude=PATTERN命令匹配给定的模式并排除了这些文件,但是我需要忽略特定的文件和文件夹(完整的文件路径),否则可能会排除有效的文件。 我还可以使用find命令创建文件列表,并排除我不想存档的文件并将该列表传递给tar,但这仅适用于少量文件。我有成千上万。 我开始认为唯一的解决方案是创建一个包含要排除的文件/文件夹列表的文件,然后使用rsync with --exclude-from=file将所有文件复制到tmp目录,然后使用tar将该目录存档。 谁能想到更好/更有效的解决方案? 编辑:Charles Ma的解决方案效果很好。最大的难题是--exclude='./folder' 必须位于tar命令的开头。完整命令(首先是cd,因此备份是相对于该目录的): cd /folder_to_backup tar --exclude='./folder' --exclude='./upload/folder2' -zcvf /backup/filename.tgz .
810 linux  shell  archive  tar 

10
给定两个目录树,如何找出内容不同的文件?
如果要查找两个目录树之间的差异,通常只执行: diff -r dir1/ dir2/ 这将准确输出相应文件之间的区别。我只想获取内容不同的相应文件的列表。我以为这只是将命令行选项传递给的问题diff,但是我在手册页上找不到任何内容。 有什么建议么?
786 linux  bash  shell  unix  diff 

22
使用grep --exclude /-include语法不对某些文件进行grep
我正在寻找foo=目录树中文本文件中的字符串。在普通的Linux机器上,我有bash shell: grep -ircl "foo=" * 目录中还包含许多匹配“ foo =“的二进制文件。由于这些结果无关紧要,并且拖慢了搜索速度,因此我希望grep跳过对这些文件(主要是JPEG和PNG图像)的搜索。我该怎么做? 我知道有--exclude=PATTERN和--include=PATTERN选项,但是模式格式是什么?grep的手册页显示: --include=PATTERN Recurse in directories only searching file matching PATTERN. --exclude=PATTERN Recurse in directories skip file matching PATTERN. 搜索grep包含,grep包含排除,grep排除和变体未找到任何相关内容 如果只在某些文件中有一种更好的grepping方式,我全力以赴。移动有问题的文件不是一种选择。我无法仅搜索某些目录(目录结构混乱不堪,到处都是东西)。另外,我什么也无法安装,因此必须使用通用工具(例如grep或建议的find)。

30
为什么“ cd”在shell脚本中不起作用?
我正在尝试编写一个小脚本以将当前目录更改为我的项目目录: #!/bin/bash cd /home/tree/projects/java 我将此文件另存为proj,使用添加了执行权限chmod,然后将其复制到/usr/bin。当我通过以下方式调用它时 proj,它什么也没做。我究竟做错了什么?
766 linux  shell 

13
计算git存储库中的行数
如何计算git储存库中所有文件中的总行数? git ls-files 给我一个由git跟踪的文件列表。 我正在寻找cat所有这些文件的命令。就像是 git ls-files | [cat all these files] | wc -l
765 bash  git  shell  line-count 



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 

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 

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.