Questions tagged «bash»

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

1
.bashrc和.inputrc有什么区别
我是unix系统的新手,发现在诸如.bashrc和的设置文件中创建自定义功能和配置很有趣.inputrc。 但是,我不了解两者之间的区别。例如,当我创建别名时,将它们放在中.bashrc。 Example 1: alias ...='cd ../../' 当我创建诸如使用箭头键查找上一个或下一个命令之类的操作时,会将命令放入中.inputrc。 Example 2: "\e[A": history-search-backward 为什么需要将它们放在不同的设置文件中?我如何区分何时放置在何处? 先感谢您!


3
shell:在命令替换中保留尾随换行符('\ n')
我希望能够捕获命令替换的确切输出,包括结尾的换行符。 我意识到默认情况下会删除它们,因此可能需要进行一些操作才能保留它们,并且我想保留原始的退出代码。 例如,给定一个带有可变数量的尾随换行符和退出代码的命令: f(){ for i in $(seq "$((RANDOM % 3))"); do echo; done; return $((RANDOM % 256));} export -f f 我想运行类似: exact_output f 并具有以下输出: Output: $'\n\n' Exit: 5 我对bashPOSIX和POSIX 都感兴趣sh。
14 bash  shell 

1
bash:警告:壳级别(1000)太高,重置为1
我只是尝试运行此命令: /etc/ssl/acme/acme.sh --log /var/log/p3x/acme/acme.sh.log --home /etc/ssl/acme --force --issue -d patrikx3.tk -w /var/www/acme-challenge 我收到此错误: bash:警告:壳级别(1000)太高,重置为1 这是什么错误?
14 bash 

4
如何使bash glob成为字符串变量?
系统信息 作业系统:OS X bash:GNU bash,版本3.2.57(1)-发行版(x86_64-apple-darwin16) 背景 我希望时间机器从我的所有git / nodejs项目中排除一组目录和文件。我的项目目录在其中~/code/private/,~/code/public/因此我尝试使用bash循环来执行tmutil。 问题 精简版 如果我有一个计算得出的字符串变量k,那么如何在for循环之前或之内使其全局: i='~/code/public/*' j='*.launch' k=$i/$j # $k='~/code/public/*/*.launch' for i in $k # I need $k to glob here do echo $i done 在下面的长版中,您会看到k=$i/$j。因此,我无法在for循环中对字符串进行硬编码。 长版 #!/bin/bash exclude=' *.launch .classpath .sass-cache Thumbs.db bower_components build connect.lock coverage dist e2e/*.js e2e/*.map libpeerconnection.log node_modules npm-debug.log …

1
在后台运行多个bash函数并等待它们返回
这是一个简单的脚本,可以nvidia-smi在多个主机上运行命令,并将其输出保存到公共文件中。这里的目标是使其异步运行。 &在process_host()函数结尾是否足够?我的脚本正确吗? #!/bin/bash HOSTS=(host1 host2 host3) OUTPUT_FILE=nvidia_smi.txt rm $OUTPUT_FILE process_host() { host=$1 echo "Processing" $host output=`ssh ${host} nvidia-smi` echo ${host} >> $OUTPUT_FILE echo "$output" >> $OUTPUT_FILE } for host in ${HOSTS[@]}; do process_host ${host} & done; wait cat $OUTPUT_FILE

4
在后台多次运行同一命令
如何运行多个命令并使用bash后台运行它们? 例如: $ for i in {1..10}; do wait file$i &; done 其中wait是自定义二进制文件。 现在我得到一个错误: syntax error near unexpected token `;' 运行上面的命令时。 后台运行后,命令应并行运行。

3
使用bash查找PHP扩展文件夹
我正在尝试构建一个bash脚本来安装Source Guardian PHP扩展,但是在随后的每个Ubuntu版本中,目标目录都是不同的。 在Ubuntu 14.04上安装PHP5导致扩展存储在/ usr / lib / php5 / 20121212 + lfs /中,在Ubuntu 15.04中此目录更改,例如/ usr / lib / 20131226 / 我已经检查了/etc/php5/fpm/php.ini和/etc/php5/fpm/php-fpm.conf,但是这些文件都没有提及20121212 + lfs或20131226。 如果将Source Guardian扩展名放在其他任何地方,则不会加载。 有没有办法以编程方式确定扩展文件夹?
14 bash  ubuntu  php 

3
检查SSL证书是否有效的脚本
我有几个SSL证书,并且证书过期后想通知我。 我的想法是创建一个cronjob,每天执行一个简单的命令。 我知道opensslLinux 中的命令可用于显示远程服务器的证书信息,即: openssl s_client -connect www.google.com:443 但我在此输出中看不到到期日期。另外,我必须用CTRL+ 终止此命令c。 如何从脚本(最好使用openssl)中检查远程证书的到期时间,并在“批处理模式”下进行操作,以使其自动运行而无需用户干预?

4
给定两个后台命令,当其中一个退出时,终止其余命令
我有一个启动两个服务器的简单bash脚本: #!/bin/bash (cd ./frontend && gulp serve) & (cd ./backend && gulp serve --verbose) 如果第二个命令退出,则似乎第一个命令继续运行。 我如何更改此设置,以便如果其中一个命令退出,另一个命令终止? 注意,我们不需要检查后台进程的错误级别,只需检查它们是否已经退出即可。

2
连续命令
我是否正确地假设,当;在一条线上连接两个命令时,Bash总是等到第一个命令退出后才执行第二个命令?同样,在shell脚本中,在不同的行上包含两个不同的命令,Bash总是等到第一行的命令退出后才在第二行执行命令? 如果是这种情况,是否可以在一行或一个脚本中执行两个命令,以使第二个命令不等到第一个命令完成后再执行? 另外,shell脚本中的不同行是否等效于由;或分隔的单独行&&?
14 bash 


2
如何在bash变量中存储图像文件?
使用以下命令后, pngString="$(cat example.png)" echo -n "$pngString" > tmp.png 我无法将tmp.png作为PNG文件打开。当我$pngString用来存储图像文件时,某些信息可能会丢失。 所以问题是:如何在bash脚本中使用变量存储完整的图像信息?
14 bash  cat  images  binary  variable 


2
使用正则表达式量词查找命令,例如{1,2}
我一直试图创建一个find命令字符串,该字符串将查找所有以数字1-99结尾但排除所有其他文件的文件。 例如,我想找到myfile1 myfile99而不是myfile456而不是myfilebackup 我在想的正则表达式是,myfile[1-9]{1,2}但是我无法将它与find一起使用。 find . -regex '.*myfile[0-9]{1,2}' 要么 find . -iname 'myfile[0-9]{1,2}' 从我可以看到的那{1,2}部分是不起作用的。 (顺便问一下,您可以-name -regex互换使用吗?) 任何帮助表示赞赏。

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.