Questions tagged «bash-script»

用bash shell语言编写的脚本。大多数问题应改用/ bash和/ shell-script标签。

4
重定向到/ dev / null
我正在阅读一个示例bash shell脚本: #!/bin/bash # This script makes a backup of my home directory. cd /home # This creates the archive tar cf /var/tmp/home_franky.tar franky > /dev/null 2>&1 # First remove the old bzip2 file. Redirect errors because this generates some if the archive # does not exist. Then create a …
144 bash-script  null 

3
在单行bash循环中使用&(与号)
我一直在成功使用此命令,该命令会更改配置文件中的变量,然后在循环内执行Python脚本: for((i=114;i<=255;i+=1)); do echo $i > numbers.txt;python DoMyScript.py; done 由于每个程序DoMyScript.py本身都需要30秒钟才能终止,因此我想将它们放回后台,同时可以生成下一个程序。 我尝试通过添加以下与号来尝试熟悉的内容: for((i=114;i<=255;i+=1)); do echo $i > numbers.txt;python DoMyScript.py &; done 但是,这导致以下错误: -bash:意外令牌';'附近的语法错误


3
作为命令变量;评估vs bash -c
我正在阅读某人制作的bash脚本,发现作者没有使用eval将变量作为命令求值 。 bash -c "$1" 代替 eval "$1" 我认为使用eval是首选方法,无论如何它可能会更快。真的吗? 两者之间有什么实际区别吗?两者之间的显着区别是什么?

5
Linux和Mac OS中的Bash
我正在购买iMac。我已经在Linux上工作了很长时间,并且做了很多bash脚本编写。我想知道Mac OS上是否所有bash命令和功能都可用?任何人都具有Mac bash脚本编写经验吗?感谢您的投入。
27 osx  bash-script 


6
是否有针对Un * x的知名且使用广泛的Shell脚本IDE?
是否有任何针对shell脚本的IDE,特别是bash和zsh脚本?这意味着要对shell脚本进行语法高亮显示,更重要的是要调试具有断点,变量检查和修改等功能的环境,就像可用于常规编程语言(如Python,Java和C)的功能一样。 例如,Microsft Windows Powershell具有诸如Powershell Plus和PowerGui之类的IDE 。 Googling组合了ShellEd和BashEclipse,ShellEd是用于编辑Shell脚本的Eclipse插件, BashEclipse是与ShellEd一起使用的调试器。我还没有尝试过。 与该组合类似,还有其他用于Un * x的Shell脚本IDE吗?有人对他们有经验吗?
23 bash-script  ide 

9
一个bash函数像其他语言一样接受参数?
我有一个bash函数来设置$PATH这样- assign-path() { str=$1 # if the $PATH is empty, assign it directly. if [ -z $PATH ]; then PATH=$str; # if the $PATH does not contain the substring, append it with ':'. elif [[ $PATH != *$str* ]]; then PATH=$PATH:$str; fi } 但是问题是,我必须为不同的变量编写不同的函数(例如,为$CLASSPATHlike assign-classpath()等编写另一个函数)。我找不到将参数传递给bash函数的方法,这样我就可以通过引用来访问它。 如果我有类似的东西会更好- assign( bigstr, substr ) …
17 bash  bash-script 


5
Bash:类型(Bash内置函数)有什么用?
我在Bash脚本中遇到了一条命令,发现: find /var/log/abcd -type f 上面的命令是在清理日志文件的上下文中。我知道是什么find呢。 看过之后-type f,我在手册页上找到了它。我在BASH_BUILTINS(1)的手册页中看到了它 type命令下的-f标志的描述是:- The -f option suppresses shell function lookup, as with the command builtin. 以下是我的问题: 有什么用type? -f标志的意义是什么? 使用typewith find命令有什么用? [编辑]:-在阅读完所有评论和答案后,我想提及我对-type option in command findVs的误解的原因type command。之所以如此,是因为我一直假设并且直到现在为止都只看到find带有一个减号'-'的简短选项(在命令情况下为Tests ),例如ls -l。在大多数情况下,我看到带有双减号'-'的长期权,例如ls --version。
16 bash  bash-script 

1
执行功能参数提供的命令
我试图在bash脚本中创建一个函数方法,该函数方法执行由参数提供给该方法的命令。 意思是这样的: special_execute() { # Some code # Here's the point where the command gets executed $@ # More code } special_execute echo "abc" 我已经尝试过我$@,"$@",$*,"$*"我怎么能这样做呢?

1
如何从标准输出中剥离颜色代码并传递到文件和标准输出
我有一个混合使用printf某些程序的程序,tput我想将输出通过管道输出到stdout以及一个文件。我宁愿使用它,sed因为我不想对脚本有任何不必要的依赖。这是到目前为止我得到的。 printf "\n$(tput setaf 6)| $(tput sgr0)$(tput setaf 7)Sourcing files...\033[m\n" | tee install.log 唯一的问题是我的日志文件正在获取所有颜色输出... ^[[36m| ^[(B^[[m^[[37mSourcing files...^[[m 我希望它只有 | Sourcing files...

2
bash脚本中的正则表达式
这是我第一次使用bash脚本,所以我很容易犯一个错误。 基本上,我正在尝试编写一个获取用户组的脚本,如果它们在某个组中,它将相应地进行记录。显然会有更多功能,但是当我什至无法使正则表达式正常工作时,毫无意义! 到目前为止,我有这个: #!/bin/bash regex="^([a-zA-Z0-9\-_]+ : [a-zA-Z0-9\-_]+) (usergroup)$" # example output groups="username : username usergroup" echo "$groups" >> /home/jrdn/log if [[ "$groups" =~ $regex ]]; then echo "Match!" >> /home/jrdn/log else echo "No match" >> /home/jrdn/log fi 我尝试过该正则表达式的每个地方都可以使用。但是在bash脚本中,它只输出$groups,然后输出No match。那么有人可以告诉我这是怎么回事吗?

3
使用“鼠标移动”来防止屏幕变黑的脚本不起作用
这是我尝试制作一个脚本,该脚本将使用“鼠标移动”来防止在观看视频时出现屏幕空白。我希望将值用于最高CPU%进程,top并且如果CPU使用率超过5%,则应该发生鼠标移动。 #!/usr/bin/env bash sleep_period=60s while true; do if (( $(top -bn 1 | sed -nrs '8p' | awk '{ print $9 }') -gt 5 )); then while (( $(top -bn 1 | sed -nrs '8p' | awk '{ print $9 }') -gt 5 )); do xdotool mousemove 0 100 xdotool …

2
在bash脚本中以图形方式询问密码并保留默认的sudo超时设置
该sudo -A(SUDO_ASKPASS)选项显然原因sudo来失去的超时时间(例如,timestamp_timeout)设置。 我想使用sudo -A选项,但是我想在bash脚本中保留默认超时(例如,在Ubuntu上为15分钟)。我想在GUI对话框中安全地输入用户密码,但是我只想输入一次脚本(而不是50次以上)。 此外,我不想以root用户身份运行整个脚本,因为我只是认为这是一个坏主意。此外,在这种情况下,由我的脚本创建的文件拥有错误的所有权。 如果sudo -A选项保留了默认超时,它将对我有用。 从sudo手册中: 选项:‑A 通常,如果sudo需要密码,它将从用户终端读取密码。如果指定了-A(询问)选项,则将执行(可能是图形的)帮助程序来读取用户的密码并将密码输出到标准输出。如果设置了SUDO_ASKPASS环境变量,则它指定帮助程序的路径。否则,如果/etc/sudo.conf包含指定askpass程序的行,则将使用该值。例如: # Path to askpass helper program Path askpass /usr/X11R6/bin/ssh-askpass 顺便说一句,kdesudo也有同样的问题-每次调用它时都要求输入密码,即使在同一脚本中稍晚一秒钟也是如此。 我正在使用Kubuntu 12.04 64位。 这是解决方案所有部分的完整工作示例。它由bash脚本,此处建议的“ myaskpass”脚本和“ .desktop”文件组成。整个过程应该是100%GUI(完全没有终端交互),因此.desktop文件至关重要(afaik)。 $ cat myaskpass.sh #!/bin/bash kdialog --password "Please enter your password: " exit 0 $ cat askpasstest1.desktop #!/usr/bin/env xdg-open [Desktop Entry] Comment=SUDO_ASKPASS tester1 Exec=bash /home/user/test/askpasstest1.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.