Questions tagged «bash»

与其他Bourne / POSIX shell相对,GNU的Bourne Again SHell特有的问题。对于一般关于Unix shell的问题,请改用/ shell标记。

4
鞭尾或对话
我将创建使用用户输入的脚本,因此我决定使用whiptail,但是有点混淆了哪一种是可移植的并且可以在ubuntu 10.x和更高版本以及CentOs5.x和更高版本中工作。 我知道read,但是我想要像工具一样的对话框,所以如果有人知道任何替代方法,就让我知道。

7
如何复制文件夹中的每个第4个文件
我的文件夹中有很多文件,名称为00802_Bla_Aquarium_XXXXX.jpg。现在,我需要将每个第4个文件复制到一个子文件夹中,用表示selected/。 00802_Bla_Aquarium_00020.jpg <= this one 00802_Bla_Aquarium_00021.jpg 00802_Bla_Aquarium_00022.jpg 00802_Bla_Aquarium_00023.jpg 00802_Bla_Aquarium_00024.jpg <= this one 00802_Bla_Aquarium_00025.jpg 00802_Bla_Aquarium_00026.jpg 00802_Bla_Aquarium_00027.jpg 00802_Bla_Aquarium_00028.jpg <= this one 00802_Bla_Aquarium_00029.jpg 我该怎么做呢?
15 bash  files  cp 

2
如何创建一个干净的shell环境以供临时使用?
我经常在以Unix为重点的常见问答网站上回答问题,在我的许多回答中,我都提供了使用bashShell的示例。但是,每次执行此操作时,我都必须手动完成创建干净环境的过程,以确保对每个步骤都进行了说明和记录。如何使该过程更简单?理想情况下,我希望键入一个命令并获得一个干净的环境,并在完成后删除该临时环境的所有痕迹。

2
我只能在使用globbing时使rm交互吗?(使用bash或zsh或同时使用)
每当我rm用外壳球一次添加多个项目时,即使模式扩展到超出我预期的可能性甚至是很小的可能性,我也总是会记得添加-i,但是(当然)我会忘记并且不小心吹走了一些有用的东西。有些人尝试使用别名来解决此问题,例如,alias rm='rm -i'但我讨厌让rm 始终保持交互式的想法,因为那样我就会养成一直使用的习惯-f,这显然会破坏整个目标。 我想做的是rm仅-i在使用globbing时使用,并且-f当然要覆盖它-i,因此我仍然可以像平常一样删除整个目录rm -rf junk。 因此rm *blah*,确实会,rm -i *blah*但是rm blah会完全按照键入的方式工作。 如果在不同的shell中完成此操作的方式有所不同,我将选择一个答案,该答案为bash 和 zsh 提供方法,而不是仅涵盖一个或另一个的答案。 注意:我实际上并不认为这一定是个好主意;我只是问是否有可能。如果您认为这是一个愚蠢的主意,我很高兴听到您的意见背后的原因,但请不要在答案栏中发布此类评论。真正的答案要么告诉我如何执行此操作,要么解释为什么/不可能(或者可能提供一种替代方法来获得类似结果)。但是,如果您想告诉我为什么这很愚蠢,请发表评论。即使我不同意结论,我也会发表理性的评论。
15 bash  zsh  wildcards  rm 



4
指向目录和相对路径的符号链接
我创建了具有目录绝对路径的符号链接(Blink),并具有以下树: $ ls -l /tmp/A total 0 lrwxrwxrwx 1 root root 6 Apr 3 12:27 Blink -> /tmp/B -rw-r--r-- 1 root root 0 Apr 3 12:27 foo $ ls -l /tmp/B total 0 -rw-r--r-- 1 root root 0 Apr 3 12:27 bar 然后我转到/ tmp / A并将目录更改为Blink: $ cd /tmp/A $ …

2
:和true和有什么不一样?
在bash: $ type : : is a shell builtin $ type true true is a shell builtin 看起来它们是相同的,但是它们没有给出相同的系统跟踪: $ strace : strace: :: command not found $ strace true execve("/bin/true", ["true"], [/* 82 vars */]) = 0 [snip] exit_group(0) = ? 我尝试了diff strace bash -c : 2>:.txt和strace bash -c true …
15 bash  dash 

1
如何将字符串补全输出到stdout?
其中一些git命令有很多选项,在它们中搜索我需要的选项通常会很有用-我只是在寻找控制TAB宽度的选项git-gui,但是大约有200个补全git config。一个显而易见的解决方法是将所有补全复制到编辑器中并搜索它们,但我宁愿这样做 [something] | grep tab 没有man或的info页面compgen,help compgen甚至没有解释其自身的选项,也没有自动完成的功能compgen(讽刺的是那是怎么回事?)。 PS:compgen -A不起作用。 PPS:这不是一个问题git-gui- 制表符宽度问题的解决方案在其他地方。 PPPS:这与自动完成命令无关,仅与命令参数有关。

4
从剪贴板粘贴到启用vi的zsh或bash shell
我希望能够使用键盘从系统剪贴板(或文本选择)粘贴到“类似于vi”的shell提示中。我通常使用zsh,有时使用bash。在这两种情况下,我都将外壳程序设置为类似vi的行为(bindkey -v/ set -o vi)。 在vim中,键序列可提供我正在寻找的行为"+p。但是,此特定的键序列在启用vi的shell提示中无法按预期工作。有什么方法可以仅通过键盘启用此功能或类似的行为,而在zsh或bash shell提示中保留类似vi的键绑定吗? -编辑- 用例:我经常在带有Pentadactyl插件,终端仿真器和vim本身的Firefox之间导航-使用带有自定义键的Xmonad窗口管理器来移动。这三个程序都具有类似vi的键绑定,这非常有效(用于“手指存储”),因此仅使用vim语法(或非常相似的语法)在它们之间传递文本是理想的选择。
15 bash  shell  zsh  vi  clipboard 

2
一段时间后如何使根外壳超时?
有没有一种方法可以使根shell(例如in gnome-terminal)“超时”,以便在一定时间内不发出任何命令后,shell退出? 我正在寻找可在bashFedora和kshOpenBSD 上使用的解决方案。
15 bash  ksh 

5
如何在Bash中N次执行命令1次
我想要一种随机运行命令的方法,每10次说1次。是否有内置的或GNU coreutil来执行此操作,理想情况是: chance 10 && do_stuff 每do_stuff十次执行一次?我知道我可以编写脚本,但这似乎很简单,我想知道是否有定义的方法。

4
为什么删除bash历史记录还不够?
我曾经认为删除我的bash历史记录足以清除bash历史记录,但是昨天我的猫在键盘右侧乱七八糟,当我回到计算机后,我看到一个月前我键入的内容,然后我开始疯狂地按下所有键,寻找可能触发它的原因。原来,即使删除了.bash_history,UPARROW键仍显示我的bash历史记录。 如何真正删除我的bash历史记录?
15 linux  bash  bashrc 


3
在代码“ {exec> / dev / null; }> / dev / null”是什么意思?
当您重定向包含exec重定向的命令列表时,此后exec> / dev / null似乎仍然没有被应用,例如: { exec >/dev/null; } >/dev/null; echo "Hi" 打印“ Hi”。 我的印象是,{}除非命令列表是管道的一部分,否则它不被视为子外壳,因此exec >/dev/null外壳在我看来仍应在当前的外壳环境中应用。 现在,如果将其更改为: { exec >/dev/null; } 2>/dev/null; echo "Hi" 没有预期的输出;对于以后的命令,文件描述符1仍指向/ dev / null。通过重新运行可以看到: { exec >/dev/null; } >/dev/null; echo "Hi" 没有任何输出。 我尝试制作脚本并对其进行分级,但是我仍然不确定此处到底发生了什么。 在此脚本的每一点上,STDOUT文件描述符发生了什么? 编辑:添加我的strace输出: read(255, "#!/usr/bin/env bash\n{ exec 1>/de"..., 65) = 65 open("/dev/null", O_WRONLY|O_CREAT|O_TRUNC, 0666) …

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.