Questions tagged «bash»

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

3
〜/ .inputrc文件无法正确来源
我有为某些按键绑定创建的〜/ .inputrc文件。 # mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving "\e[1;5C":forward-word "\e[1;5D":backward-word "\e[5C":forward-word "\e[5D":backward-word "\e\e[C":forward-word "\e\e[D":backward-word 每当我尝试运行时source ~/.inputrc,都会出现以下错误: \ e [1; 5C:forward-word:找不到命令。\ e [1; 5D:向后单词:找不到命令。\ e [5C:forward-word:找不到命令。\ e [5D:向后单词:找不到命令。\ e \ e [C:forward-word:找不到命令。\ e \ e [D:后退单词:找不到命令。 当我打开新终端时,它也不起作用,我没有收到错误,但我的ctrl组合键在新终端中也不起作用。我自己创建了该文件,因为我没有root权限来更改/ etc / inputrc。有人可以帮我吗?谢谢。 编辑:我也尝试了冒号(:)后的空格文件。没用 我也尝试过使它可执行(chmod + x〜/ .inputrc),没有用。 编辑:我意识到此过程仅适用于'bash',而我正在运行'tcsh'。对于'csh',请使用.bindingsfile而不是.inputrcfile并使用bindkey语法。
14 bash  tcsh  readline 


5
让xargs使用别名而不是二进制
在CentOS 6.5上的Bash 4.2: 在我中,~/.bash_profile我有一堆别名,包括: alias grep='grep -n --color=always' 这样我可以在运行时自动获得颜色突出显示和打印行号grep。如果我运行以下命令,则突出显示将按预期工作: $ grep -Re 'regex_here' *.py 但是,当我最近运行此命令时: $ find . -name '*.py' | xargs grep -E 'regex_here' 结果没有突出显示,并且没有打印行号,这迫使我返回并显式添加-n --color=always到grep命令中。 难道xargs没有读过环境别名? 如果没有,有没有办法做到这一点?
14 bash  alias  xargs 

3
如何将Bash的流程替换与HERE文档结合在一起?
在Bash 4.2.47(1)-发行版中,当我尝试对来自HERE-dcoument的格式化文本进行分类时,如下所示: cat <(fmt --width=10 <<FOOBAR (I want the surrounding parentheses to be part of the HERE-document) (Even the preceding unbalanced parenthesis should be part of it. FOOBAR ) # I want this paranthesis to end the process substitution. 我收到以下错误: bash: bad substitution: no closing `)' in <(fmt --width=10 <<FOOBAR …

1
exec 3 <&1做什么?
我知道exec可以在当前shell上进行I / O重定向,但是我只会看到类似的用法: exec 6&lt;&amp;0 # Link file descriptor #6 with stdin. # Saves stdin. exec 6&gt;&amp;1 # Link file descriptor #6 with stdout. # Saves stdout. 据此,我了解&lt;输入流,&gt;输出流。那怎么exec 3&lt;&amp;1办? PS:我从Bats源代码中找到了这个

4
如何显式调用内置的shell?
我想根据需要自定义cd命令功能。 我定义了以下功能- function cd () { cd "$@" &amp;&amp; pushd "$@"; } 此功能的目的是自动将目录推送到堆栈上,这样可以节省我pushd .每次手动键入的工作量。 但是,上述函数是一个无限递归函数,因为对的调用cd被解释为函数本身,而不是cd内置函数。 如何引用cd此函数中的内置函数? 我知道可以使用来转义别名\。如何以更明确的方式转义函数或引用内置函数? 注意:我不想将函数重命名为其他任何名称。

2
在bash脚本中并行运行数千个curl后台进程
我在以下bash脚本中并行运行卷曲背景进程thounsand START=$(date +%s) for i in {1..100000} do curl -s "http://some_url_here/"$i &gt; $i.txt&amp; END=$(date +%s) DIFF=$(( $END - $START )) echo "It took $DIFF seconds" done 我有49Gb Corei7-920专用服务器(非虚拟)。 我通过top命令跟踪内存消耗和CPU ,它们离界限很远。 我ps aux | grep curl | wc -l用来计算当前卷曲过程的数量。这个数字迅速增加到2-4千,然后开始连续下降。 如果我通过管道卷曲到awk(curl | awk &gt; output)添加简单的解析,则卷曲过程数只会增加到1-2千,然后减少到20到30 ... 为什么进程数量如此急剧减少?这种架构的界限在哪里?
14 linux  performance  bash  curl  wget 


2
Setuid位似乎对bash无效
我进行了一些实验,发现有些奇怪:将setuid位设置在位于bash的bash副本上/usr/bin/bash-test似乎没有任何效果。当我运行的实例时bash-test,未将主目录设置为/root,当whoami从中运行命令时bash-test,未将用户名报告为root,表明该用户名bash-test未以root身份运行。但是,如果我将setuid位设置为on whoami,则按预期,我在任何shell中都是root用户。 我也尝试设置setuid位,/usr/bin/bash并观察到相同的行为。 在bash上设置setuid位时,为什么bash不能以root身份运行?selinux可能与此有关吗?
14 linux  bash  setuid 

3
在Bash中显示功能主体
我在.bashrc文件中设置了几个功能。我只想显示函数的实际代码而不执行它,以便快速引用某些内容。 有什么办法,我们可以看到函数定义吗?
14 bash  function 


4
触摸目录中的所有文件夹
我正在尝试使用以下命令更新cwd中所有文件夹的时间戳: for file in `ls`; do touch $file; done 但这似乎不起作用。有什么想法吗?
14 bash  touch 

12
linux diff工具:创建修改文件列表
如何使用linux命令行工具以编程方式创建已修改文件的列表?我对任何特定文件(增量,补丁)中的差异都不感兴趣。我只想列出与以前的产品版本比较的新文件或修改过的文件。这样我就可以发布新产品更新。 更新:diff -qr不会产生非常方便的输出。的输出diff -qr也需要处理。有什么更好的办法吗?

3
为什么感叹号`!`有时会使bash不高兴?
我意识到这!在命令行历史记录的上下文中在命令行上具有特殊意义,但是除此之外,在运行脚本中,感叹号有时可能会导致解析错误。 我认为与有关event,但我不知道事件是什么或事件是什么。即使这样,同一命令在不同情况下的行为也可能不同。 下面的最后一个示例导致错误;但是为什么当相同的代码在命令替换之外起作用时呢?..使用GNU bash 4.1.5 # This works, with or without a space between ! and p { echo -e "foo\nbar" | sed -nre '/foo/! p' echo -e "foo\nbar" | sed -nre '/foo/!p'; } # bar # bar # This works, works when there is a space between ! and …

2
bash嵌套的大小写语法和;; 终结者
;;在包含嵌套case的bash脚本中,我是否有足够(或可能太多)的终止符? case "$1" in OK) # Nothing needs done echo -n "OK:1" ;; CRITICAL) case "$2" in SOFT) case "$3" in 1|2) soft_reset_pool.sh ;; esac ;; HARD) case "$3" in 1|2) hard_reset_pool.sh ;; 3|4) hard_reset_service ;; esac ;; esac ;; esac 自从我大发脾气以来已经有几年了。
14 bash 

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.