【linux – bash如何验证文件是否为空】教程文章相关的互联网学习教程文章

Linux-Find命令在终端中有效,但在bash脚本中无效【代码】

我编写了一个find命令,该命令可以查找文件,但不包括其他文件/目录.我确实回显了这段代码并复制了它.如果我将其粘贴到终端中,它将起作用.某些文件被排除在外.但是,如果我从脚本中执行它,它将无法按预期工作. 我试图在$()或${}之类的括号之间转义变量,并将其引用,但没有任何效果. 我的查找代码如下所示:find ${StartDirs[*]} $pat -print实际上,它将像以下那样执行:find ./bin -wholename './bin/backup2' -prune -o -wholename '...

Linux-Bash字符串比较无法正常工作【代码】

我有以下Bash函数:checkForUpdates() {checkLatestret=$?if [ $ret != 0 ]; thenreturn $retficount=0for i in $(ssh $__updateuser@$__updatehost "ls $__updatepath/*${latest}*"); dofile="${i##$__updatepath}"echo "$file" >> $__debuglogif [ -f $__pkgpath/$file ]; thenremoteHash=$(ssh $__updateuser@$__updatehost "md5sum -b < $__updatepath/${file}")localHash=$(md5sum -b < $__pkgpath/$file)echo "${remoteHash:...

linux-无需交互的Bash脚本

我想做以下事情: 我有一个bash脚本,该脚本调用一个交互式命令,该命令要求用户输入密码短语.我想在脚本中将密码短语指定为变量,然后将该变量非交互地传递给命令.解决方法:我相信您希望研究expect.该实用程序是专门为代表用户键入而设计的. 假设您的脚本有提示(或在需要用户交互之前会可靠地出现一行),则Expect可以解析输出,并且在看到该行时(例如,’passphrase:’),输入您的密码并继续执行脚本.

linux-编写简单的bash(如命令提示符),支持自动完成(“处理”选项卡键)【代码】

我试图实现一个简单的shell提示符,它只需要处理内部命令,就尝试了Term :: ReadLine,但是它不像bash那样处理Tab键,所以我想知道现在还能做什么.解决方法:快速搜索CPAN会得到Term::Completion和Term::Completeuse Term::Completion qw( Complete );my $result = Complete($prompt, @choices);

linux输入yum后提示: -bash: /usr/bin/yum: No such file or directory的解决方案【代码】

原文链接:http://www.cnblogs.com/AI-Algorithms/p/3585456.htmllinux输入yum后提示: -bash: /usr/bin/yum: No such file or directory的解决方案今天在安装程序时,发现有一个插件未安装,我就随手敲了一个命令,看都没看 yum remove yum然后就杯具了...1 [root@localhost ~]# yum 2 -bash: /usr/bin/yum: No such file or directory 这个粗心的手误倒不至于让整个系统瘫痪,yum 却无法使用了。于是,我试着折腾了一番1 r...

linux-bash中的进程替换,有时我必须按“ Enter”【代码】

我只是在学习在bash中使用流程替换.这是命令:echo TEXT > >(tee log)这是没有意义的命令,但问题是我必须在运行它后按Enter.这是为什么? 有时,这会通过更有用的命令发生,例如:ls SOME_NON_EXISTING_FILE 2> >(tee log)解决方法:实际上实际上并不需要Enter,您只需输入下一个命令,例如日期和检查.发生的情况是,由于进程替换,您的命令首先退出,然后输出输出到您的终端上,这就是您误认为需要按Enter的原因.

linux-bash脚本if语句未显示为true【代码】

我试图在运行resize2fs之前获得一个快速脚本来检查文件系统.#!/bin/bash var2=$(dumpe2fs -h /dev/mapper/mylv | grep "Filesystem state:") var1=test echo $var1 echo $var2if [ "$var2" = "Filesystem state: clean" ]; thenecho "clean" elseecho "dirty" fi我的结果Server1:~ # ./filesystest.sh dumpe2fs 1.38 (30-Jun-2005) test Filesystem state: clean dirty看起来即使var2实际上是“文件系统状态:干净”,它仍然显示为f...

linux-引导到计算机后,为什么需要执行〜/ .bash_profile的源代码?【代码】

我已经安装了octopress,但是要使其运行(仅在启动计算机后),我每次都需要做:source ~/.bash_profile 除非我这样做,否则在运行时会出现错误:rake generate错误:bash: /usr/local/bin/rake: /usr/bin/ruby1.9.1: bad interpreter: No such file or directory 我有Ubuntu 12.0 LTS,并且已经通过了question,但是由于我不了解shell概要文件和shell的基础知识,因此我无法理解答案.也请给我启发. 我心中唯一的解决方案似乎是计划将cron...

linux-创建bash脚本以删除不包含某些文件类型的文件夹【代码】

我最近遇到了一个问题. 我使用了一个实用程序将所有音乐文件移动到基??于标签的目录中.这留下了很多几乎空的文件夹.通常,这些文件夹包含thumbs.db文件或用于专辑封面的某种图像. mp3在其新目录中具有正确的专辑封面,因此旧的mp3可以删除. 基本上,我需要在D:/ Music /中找到以下目录: -没有任何子目录 -不包含任何mp3文件 然后删除它们. 我认为与Windows 8.1(HAHA)相比,在shell脚本或bash脚本或任何其他linux / unix世界中这样做更...

如何在BASH中使用新的进程组ID在Linux上生成进程【代码】

任何人都可以提出建议,如何在BASH unix shell中使用新的进程组ID在Linux上生成新进程?非常感谢!解决方法:要在新进程组中从命令提示符下(例如以交互方式)运行命令,例如“ emacs xxx.txt”:setsid emacs xxx.txt &如链接的“ linux命令setsid”中所述,setsid命令的行为可能令人惊讶(并且在我现在使用的linux中,联机帮助页根本没有帮助).所以… 如果要从脚本中生成命令并在脚本退出后继续执行该命令,请对setsid进行两次设置:setsi...

Linux-为什么超时在bash脚本中不起作用?【代码】

如果进程超过几秒钟,我试图终止该进程. 当我在终端中运行以下代码时,它的工作就很好.timeout 2 sleep 5但是当我有一个脚本时-#!/bin/bash timeout 2 sleep 5它说timeout: command not found为什么这样?解决方法是什么?– 编辑 – 在执行类型超时时,它说-timeout is a shell function解决方法:看来您的环境$PATH变量不包含/usr/bin /路径,或者其他地方可能存在超时二进制文件. 因此,只需使用以下命令检查超时命令的路径:command...

Linux-Bash Shell脚本根据年份和月份创建子目录【代码】

说明:列表/home/foo/dirlist.txt包含/ tmp / a .. / tmp / z 目标:创建子目录,例如/ tmp / a / 2014/04,/ tmp / b / 2014/04 … / tmp / z / 2014/04 错误:仅在文件只有一个目录(例如/ tmp / a)时创建子目录执行后,最终结果应为/ tmp / a / 2014/04.但是,当文件具有多个条目(例如/ tmp / a … / tmp / z)时,不会创建任何子目录* 我如何实现我的目标?在此先感谢您提供任何提示和指示.## /home/foo/dirlist.txt contains /tmp/a ...

Linux Bash确定变量名称Greedy或Non-Greedy的规则【代码】

如果您在Ubuntu 12.04上运行以下bash脚本:t="t" echo "1st Output this $15" echo "2nd this $test"输出为:1st Output this 5 2nd this第一个回声如何将$1作为变量名(非贪婪)将其解释为${1} 5,而第二个回声又如何将$test作为变量名(贪婪)而不是将其解释为${t} est?解决方法:您的问题分为两部分: > $15将始终被解释为$1,即第一个位置参数1与5串联.要使用第15个位置参数,您需要说${15}.> $test将被解释为变量测试.因此,如果您希望...

linux-如何使bash程序接受来自另一个C程序的命令【代码】

我是Linux和编程的新手.我使用system(“ Prog”)从C程序打开了一个应用程序;Prog-> #after opening the program该“程序”接受来自用户的某些命令并显示输出.Prog-> write # Accepts the command from user 1 2 3 4 5 # Displays the output Prog-> # Waiting for next command我想使命令从C程序发送,而不是从用户那里获取.我不能使用system(“”);将命令发送到打开的程序“ Prog”(就像从C程序向CLI传递命令一样).系统...

在Linux中使用Bash列出带有空格的目录【代码】

我想创建一个bash脚本,以列出用户通过输入提供的目录中的所有目录,或列出当前目录中的所有目录(不提供任何输入). 到目前为止,这就是我所拥有的,但是当我执行它时,我遇到了两个问题. 1)脚本完全忽略了我的输入.该文件位于我的桌面上,但是当我输入“ home”作为输入时,该脚本仅打印桌面的目录(当前目录). 2)目录按行打印(按预期),但会将文件夹名称中的每个单词视为其自己的文件夹.即打印为:this folder这是我到目前为止的代码:#!/b...