Questions tagged «bash»

有关为Bash命令外壳编写的脚本的问题。对于具有错误/语法错误的shell脚本,请在此处发布之前,使用shellcheck程序(或在Web shellcheck服务器中的https://shellcheck.net)进行检查。有关Bash交互使用的问题更可能是Super User而不是Stack Overflow上的话题。

13
如何使用Bash检查文件大小?
我有一个检查0大小的脚本,但是我认为必须有一种更简单的方法来检查文件大小。即file.txt通常为100k;如何使脚本检查其是否小于90k(包括0),并使其获得新的副本,因为在这种情况下文件已损坏。 我目前正在使用什么。 if [ -n file.txt ] then echo "everything is good" else mail -s "file.txt size is zero, please fix. " myemail@gmail.com < /dev/null # Grab wget as a fallback wget -c https://www.server.org/file.txt -P /root/tmp --output-document=/root/tmp/file.txt mv -f /root/tmp/file.txt /var/www/file.txt fi
145 bash 

9
使用sudo时找不到命令
foo.sh我的主文件夹中有一个脚本。 当我导航到该文件夹​​并输入时./foo.sh,我得到 -bash: ./foo.sh: Permission denied。 当我使用时sudo ./foo.sh,我得到 sudo: foo.sh: command not found。 为什么会发生这种情况,我该如何解决?
145 linux  bash  sudo 

4
使用tar,gz,zip或bzip2分割文件
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Stack Overflow 的主题。 11年前关闭。 改善这个问题 我需要压缩约17-20 GB的大文件。我需要将其分成几个文件,每个文件大约1GB。 我通过Google搜索了一个解决方案,并找到了使用split和cat命令的方法。但是它们根本不适用于大型文件。另外,它们将无法在Windows中使用;我需要在Windows计算机上将其解压缩。

7
Grep比赛前后的字符?
使用这个: grep -A1 -B1 "test_pattern" file 将在文件中的匹配模式前后产生一行。有没有一种方法来显示不是行而是指定数量的字符? 我文件中的行很大,所以我对打印整行不感兴趣,而只是观察上下文中的匹配项。有关如何执行此操作的任何建议?
144 bash  grep 

10
如何在Shell脚本中删除文件名的扩展名?
以下代码有什么问题? name='$filename | cut -f1 -d'.'' 照原样,我得到了文字字符串$filename | cut -f1 -d'.',但是如果删除引号,我什么也得不到。同时,输入 "test.exe" | cut -f1 -d'.' 在shell中给我想要的输出test。我已经知道$filename已经分配了正确的值。我想要做的是将没有扩展名的文件名分配给变量。
144 bash  shell  sh  cut  gnu-coreutils 

7
如何使用wget下载整个目录和子目录?
我正在尝试使用来下载项目文件,因为该项目wget的SVN服务器不再运行,并且只能通过浏览器访问文件。所有文件的基本URL都一样 http://abc.tamu.edu/projects/tzivi/repository/revisions/2/raw/tzivi/ * 我如何使用wget(或任何其他类似的工具)下载此存储库中的所有文件,其中“ tzivi”文件夹是根文件夹,并且其下有几个文件和子文件夹(最多2或3个级别)?
143 regex  linux  bash  wget 

10
如何进入每个目录并执行命令?
我怎样写一个bash脚本,通过每一个目录使用一个parent_directory内执行一个命令在每个目录。 目录结构如下: parent_directory(名称可以是任何数字-不遵循模式) 001(目录名遵循此模式) 0001.txt(文件名遵循此模式) 0002.txt 0003.txt 002 0001.txt 0002.txt 0003.txt 0004.txt 003 0001.txt 目录数未知。
143 bash  shell  unix  find 

3
您如何在Bash中区分两个管道?
在不使用Bash中的临时文件的情况下,如何区分两个管道?假设您有两个命令管道: foo | bar baz | quux 您想diff在其输出中找到。一种解决方案显然是: foo | bar > /tmp/a baz | quux > /tmp/b diff /tmp/a /tmp/b 是否可以在不使用Bash中的临时文件的情况下这样做?您可以通过管道传递到diff之一来摆脱一个临时文件: foo | bar > /tmp/a baz | quux | diff /tmp/a - 但是,您不能同时将两个管道(至少没有明显的方式)传送到diff中。是否有一些巧妙的技巧/dev/fd可以在不使用临时文件的情况下做到这一点?
143 bash  diff  pipeline 



9
对Bash的嵌入式评论?
我希望能够在单行命令中注释掉单个标志。Bash似乎只有from # till end-of-line意见。我正在看一些技巧: ls -l $([ ] && -F is turned off) -a /etc 这很丑,但总比没有好。有没有更好的办法? 以下内容似乎可行,但我不确定它是否可移植: ls -l `# -F is turned off` -a /etc
142 bash  comments 

7
如果变量名称存储为字符串,如何获取变量值?
如果变量名称为字符串,如何检索bash变量值? var1="this is the real value" a="var1" Do something to get value of var1 just using variable a. 内容: 我有一些AMI(Amazon机器映像),我想启动每个AMI的一些实例。他们完成启动后,我要根据其AMI类型设置每个实例。我不想在任何AMI中烘焙大量脚本或秘密密钥,因此我准备了一个通用的启动脚本,并通过可公开访问的链接将其放在S3上。在rc.local中,我放了一小段代码来获取启动脚本并执行它。这就是我在AMI中所拥有的。然后,每个AMI访问一个适用于所有AMI的通用配置脚本和每个配置的特殊设置脚本。这些脚本是私有的,需要签名的URL才能访问它们。 因此,现在,当我启动AMI的实例(my_private_ami_1)时,我为S3上传递的另一个文件传递了一个签名URL,该文件包含键/值对形式的所有私有脚本的签名URL。config_url="http://s3.amazo.../config?signature" my_private_ami_1="http://s3.amazo.../ami_1?signature" ... 启动脚本运行时,它将下载上面的文件source。然后,它检查其AMI类型,并为其选择正确的设置脚本。 ami\_type=GET AMI TYPE #ex: sets ami\_type to my\_private\_ami\_1 setup\_url=GET THE SETUP FILE URL BASED ON AMI\_TYPE # this is where this problem arises 因此,现在我可以拥有一个通用代码,该代码可以激发实例而不管其AMI类型如何,并且实例可以照顾自己。
142 string  bash 

8
Bash函数查找最新的文件匹配模式
在Bash中,我想创建一个函数,该函数返回与特定模式匹配的最新文件的文件名。例如,我有一个文件目录,例如: Directory/ a1.1_5_1 a1.2_1_4 b2.1_0 b2.2_3_4 b2.3_2_0 我想要以“ b2”开头的最新文件。我该怎么做呢?我需要在~/.bash_profile脚本中包含它。
141 linux  bash 

5
错误退出脚本
我正在构建具有以下if功能的Shell脚本: if jarsigner -verbose -keystore $keyst -keystore $pass $jar_file $kalias then echo $jar_file signed sucessfully else echo ERROR: Failed to sign $jar_file. Please recheck the variables fi ... 我希望在显示错误消息后完成脚本的执行。我该怎么做?
141 bash  exit  shell 

7
在OSX中永久设置PATH环境变量
我已经阅读了关于如何将OSX上的环境变量永久设置为几个答案。 首先,我尝试了这个,如何在Linux / Unix上永久设置$ PATH?但是我收到一条错误消息,说no such file and directory,所以我认为我可以尝试 ~/.bash_profile代替~/.profile它,但是它不起作用。 其次,我找到了该解决方案如何在os x中设置应用程序使用的$ PATH,建议在其中进行更改 〜/ .MacOSX / environment.plist 但是我又no such file and directory出错了。 我需要一种设置这些变量的方法,这样就不必在每次打开新的终端会话时都一次又一次地设置它们。

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.