Questions tagged «bash»

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

3
bash脚本错误stty:标准输入:设备的ioctl不适当
我在bash脚本中使用here-documents来自动执行安装和设置,而该操作需要多次输入密码。我输入一次密码,脚本将其传递给各种命令。在大多数情况下,此处文档方法可以很好地解决这一问题。但是,在一种情况下,我得到此错误: Enter VNC password: stty: standard input: Inappropriate ioctl for device Verify password: stty: standard input: Inappropriate ioctl for device 请注意,此错误消息来自x11vnc -storepassword(而不是来自)sudo。 我的问题与x11vnc -storepasswd,这是我的代码: sudo x11vnc -storepasswd ~/.vnc/passwd << ENDDOC password password y ENDDOC 显然(由于错误)不起作用。我将感谢一个如何sudo x11vnc -storepasswd ~/.vnc/passwd在脚本中实现的可行示例。 如果有帮助,则提示如下所示: 输入VNC密码: 验证密码: 将密码写入/home/user/.vnc/passwd?[y] / nn 使用expect会是更好的解决方案吗?如果是这样,在这种情况下我将如何使用它?(我以前从未使用expect过,但是自发布此问题以来,我查看了很多示例,因此我无法expect独自工作。)

5
在剧本的shebang行中,我怎么可能有不止一种可能性?
我处于一个有趣的情况,我有一个Python脚本,理论上可以由具有各种环境(和PATH)的各种用户以及各种Linux系统上运行。我希望此脚本在尽可能多的可执行文件上不受人为限制。以下是一些已知的设置: Python 2.6是系统Python版本,因此python,python2和python2.6都存在于/ usr / bin中(并且是等效的)。 如上所述,Python 2.6是系统Python版本,但Python 2.7与python2.7一同安装。 Python 2.4是系统Python版本,我的脚本不支持该版本。在/ usr / bin中,我们有等效的python,python2和python2.4,以及脚本支持的python2.5。 我想对所有这三个脚本运行相同的可执行python脚本。如果它先尝试使用/usr/bin/python2.7(如果存在),然后回退至/usr/bin/python2.6,然后回退至/usr/bin/python2.5,然后再回退,那就太好了如果这些都不存在,就简单地将错误提示出来。不过,我不太可能使用最新的2.x,只要它能够找到正确的解释器之一(如果存在)。 我的第一个倾向是将shebang线从以下位置更改: #!/usr/bin/python 至 #!/usr/bin/python2.[5-7] 因为这在bash中效果很好。但是运行脚本可以得到: /usr/bin/python2.[5-7]: bad interpreter: No such file or directory 好的,所以我尝试以下方法,它也可以在bash中使用: #!/bin/bash -c /usr/bin/python2.[5-7] 但是,再次失败: /bin/bash: - : invalid option 好的,显然我可以编写一个单独的shell脚本来找到正确的解释器,并使用找到的任何解释器运行python脚本。我会发现分发两个文件很麻烦,只要在安装了最新的python 2解释器的情况下运行一个文件就足够了。要求人们明确地调用解释器(例如$ python2.5 script.py)不是一种选择。也不能选择依靠用户的PATH进行某种设置。 编辑: 版本的Python脚本内检查是不是因为我用它存在像Python 2.6的(并可以在2.5与所使用的“与”语句去上班from __future__ import with_statement)。这会导致脚本立即失败,并出现用户不友好的SyntaxError,并阻止我有机会先检查版本并发出适当的错误。 示例:(使用小于2.6的Python解释器尝试此操作) #!/usr/bin/env …
16 bash  scripting  python 



3
bash的meta键是什么?
我试图用来xmodmap映射META_L到MENU键,但是它似乎不被bash元键接受。因此,我想知道这些元素(键盘,X,xterm,bash)与元密钥和超级密钥之间的关系如何。任何解释将不胜感激。 让我换种说法。bash手册页说,例如,绑定了yank-nth-arg函数M-C-y,当我按时它可以工作Esc-Control-y。但是我觉得这有点麻烦。那么,如何使bash 为其所有默认绑定接受另一个键Meta(如Menu)呢?

4
自动完成目录中的文件名
这个问题是非常相似这一个,但我不明白的解决方案。我也知道本教程,但仍然无法理解我做错了什么。 我正在尝试自动完成放置在目录的列表/something/: $ ls /something/ One Other Three 以某种方式将发生这种情况: $ hi [TAB] One Other Three $ hi O[TAB] One Other 只有在第一个单词出现的时候hi,不仅在内部/something/。 这就是我在做的事情.profile: _codeComplete() { local cur=${COMP_WORDS[COMP_CWORD]} COMPREPLY=( $(compgen `ls /something/` -- $cur) ) } complete -F _codeComplete "hi "

4
用sed处理bash变量
bash变量LATLNG像这样在方括号中包含纬度和经度值 (53.3096,-6.28396) 我想将它们解析成一个名为LAT和LON的变量,我正试图通过sed像这样 LAT=$(sed "s/(\(.*\),\(.*\))/\1/g" "$LATLNG") LON=$(sed "s/(\(.*\),\(.*\))/\2/g" "$LATLNG") 但是,出现以下错误: sed: can't read (53.3096,-6.28396): No such file or directory

4
循环遍历变量
我正在编写一个bash脚本,以在大约20台不同的服务器上使用rsync并更新文件。 我想通了rsync部分。我遇到的麻烦是要遍历变量列表。 到目前为止,我的脚本如下所示: #!/bin/bash SERVER1="192.xxx.xxx.2" SERVER2="192.xxx.xxx.3" SERVER3="192.xxx.xxx.4" SERVER4="192.xxx.xxx.5" SERVER5="192.xxx.xxx.6" SERVER6="192.xxx.xxx.7" for ((i=1; i<7; i++)) do echo [Server IP Address] done [Server IP Address]关联变量的值应在哪里。因此,当i = 1时,我应该回显$ SERVER1的值。 我已经尝试过几次迭代,包括 echo "$SERVER$i" # printed the value of i echo "SERVER$i" # printer "SERVER" plus the value of i ex: SERVER 1 where i …


1
如何在xargs中使用定义的函数
这是我的代码 #!/bin/bash showword() { echo $1 } echo This is a sample message | xargs -d' ' -t -n1 -P2 showword 因此,我有一个函数showword,该函数会回显您作为参数传递给该函数的任何字符串。 然后,我xargs尝试调用该函数,一次将一个单词传递给该函数,然后并行运行该函数的2个副本。不起作用的是xargs无法识别该功能。如何实现我要执行的操作,如何使xargs与该函数一起使用showword?
16 bash  xargs  function 

3
在PATH中运行与现有函数同名的可执行文件
有时,我定义了一个函数,该函数会遮盖可执行文件并调整其参数或输出。因此,该函数与可执行文件具有相同的名称,并且我需要一种方法,该方法如何从该函数运行该可执行文件而无需递归调用该函数。例如,要自动运行fossil diffthrough colordiff和less -R我的输出,请使用: function fossil () { local EX=$(which fossil) if [ -z "$EX" ] ; then echo "Unable to find 'fossil' executable." >&2 return 1 fi if [ -t 1 ] && [ "$1" == "diff" ] ; then "$EX" "$@" | colordiff | less -R return fi …
16 bash  path  function 

9
使用ncal或cal以某种格式显示星期数
当两个命令各自执行您想要的一件事而两个都不都想要时,您是否就喜欢它? 这是做什么的cal。格式不错。虽然缺少周数: $ cal January 2012 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 这是做什么的ncal。格式很奇怪,但是有周数: $ ncal -w January 2012 …

5
将Bash CD放到特定文件夹中
我在Magento做很多工作,所以和我一起工作的很多人也在做,不得不输入以下内容很烦人: cd ../../../../../../ 为了仅从根目录“ httpdocs”文件夹中找到几个目录,因此我尝试制作一个遵循此伪代码的脚本: while lowest level directory != httpdocs cd ../ end while; 看起来很简单,我假设我必须做某种形式的grep检查当前工作目录的最后一部分是否是httpdocs,如果不是一直保持到真正的水平的话。 我一直在为此目的学习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.