Articles of bash

使用通配符(*)将文件复制到bash脚本中的文件夹 – 为什么它不工作?

我写一个bash脚本创build一个文件夹,并将文件复制到该文件夹​​。 它从命令行工作,但不是从我的脚本。 这里有什么问题? #! /bin/sh DIR_NAME=files ROOT=.. FOOD_DIR=food FRUITS_DIR=fruits rm -rf $DIR_NAME mkdir $DIR_NAME chmod 755 $DIR_NAME cp $ROOT/$FOOD_DIR/"*" $DIR_NAME/ 我得到: cp: cannot stat `../food/fruits/*': No such file or directory

而在Bash脚本循环?

我不习惯编写Bash脚本,Google也没有帮忙弄清楚这个脚本有什么问题: #!/bin/bash while read myline do done echo "Hello" while read line do done exit 0 我得到的输出是: ./basic.agi: line 4: syntax error near unexpected token 'done' ./basic.agi: line 4: 'done' 我的bash版本是: GNU bash, version 3.2.25(1)-release (i686-redhat-linux-gnu) 谢谢。 编辑:当while循环不为空时,脚本工作正常。 虽然我在…我希望退出循环,当用户input什么,即。 只需按Enter键,但Bash不断循环。 我怎样才能退出循环? while read myline do echo ${myline} done echo "Hello" while read line do true […]

在SLURM sbatch脚本中使用Bashvariables

我试图从另一个文件中获取一个值,并在SLURM提交脚本中使用它。 但是,我得到一个错误,该值是非数值的,换句话说,它不被解除引用。 这是脚本: #!/bin/bash # This reads out the number of procs based on the decomposeParDict numProcs=`awk '/numberOfSubdomains/ {print $2}' ./meshModel/decomposeParDict` echo "NumProcs = $numProcs" #SBATCH –job-name=SnappyHexMesh #SBATCH –output=./logs/SnappyHexMesh.log # #SBATCH –ntasks=`$numProcs` #SBATCH –time=240:00 #SBATCH –mem-per-cpu=4000 #First run blockMesh blockMesh #Now decompose the mesh decomposePar #Now run snappy in parallel mpirun -np $numProcs snappyHexMesh -parallel […]

如何在shell中重复连字符(连字符)

我怎样才能在shell中重复这个字符? 我已阅读并尝试过,但这不适用于- 。 它会抛出错误invalid option 。 下面是我使用的确切命令: printf '-%.0s' {1..100} 原始发布行: printf '-%0.s' {1..100} 我也尝试逃避-通过放置一个\但在这种情况下,它重复\- n次。

如何在linux中设置sed命令的临时文件目录?

我有这样修改文件的bash脚本 sed -i "/hello world/d" /etc/postfix/virtual 我从web应用程序运行这个脚本。 sed命令在该目录中创build临时文件,但在其下运行的Web应用程序的用户无权在该目录中创build文件。 我不想给该文件夹的用户更多的权限。 是否有可能为sed命令指定临时文件位置? 我是在Linux新,所以很抱歉,如果我的问题太容易,但我没有find任何解决scheme。 谢谢!

如何检查一个文件是否是其他的一部分?

我需要通过bash脚本来检查一个文件是否在另一个文件中。 对于给定的多行模式和input文件。 返回值: 我想接收状态(如何在grep命令)0如果find任何匹配,1如果没有find匹配。 模式: 多, 行的顺序是重要的(被视为一个单独的行) 包括数字,字母,?,&,*,#等字符, 说明 只有下面的例子应该find匹配: pattern file1 file2 file3 file4 222 111 111 222 222 333 222 222 333 333 333 333 444 444 以下不应该: pattern file1 file2 file3 file4 file5 file6 file7 222 111 111 333 *222 111 111 222 333 *222 222 222 *333 222 222 333 333* […]

检查目录是否是git存储库(不必cd进去)

我可以使用什么shell命令,使用完整的目录path,确定给定的目录是否是git存储库? 具体来说,我希望能够做到这一点,而不必在目录中,而不必在CD中。 我也希望能够通过一个返回简单的“true”或者“false”的命令来做到这一点(就像在工作树里面进行的rev-parse一样),但这不是必须的。

如何查找除名字以外的文件?

我有一个dir: BLA-BLA-bla1.tar.7z BLA-BLA-bla2.tar.7z BLA-BLA-bla3.tar.7z _bla-BLA-bla_foo.tar.7z 我需要find并删除“ .7z”以外的所有文件“.7z” 我用find / backups / -name“* .7z”-type f -mtime +180 -delete 我怎么能做到这一点?

如何在Iterm中插入制表符?

简单地说,我知道你可以做ctrl + v + tab来在bash语句中插入一个物理上真正的制表符。 但是我怎样才能为iTerm做同样的事情呢?

即使没有真正的用户,我如何在Asterisk的Linux服务中设置环境variables?

我创build了一个作为deamon运行的linux服务(并从/etc/init.d/X开始)。 我需要设置一些可以被应用程序访问的环境variables。 这是场景。 该应用程序是一堆依赖于(因此需要以asterisk用户运行)的Perl AGI脚本,但星号没有shell。 理想情况下,我只是将其设置在/home/asterisk/.bashrc中,但不存在星号。 如何在星号用户的运行环境中为我的应用程序设置环境variables,以便我的应用程序可以使用它们?