【linux – Bash:整数表达式预期】教程文章相关的互联网学习教程文章

linux – 在Bash的文件路径参数中获取最后一个dirname / filename【代码】

我正在尝试为SVN编写一个post-commit挂钩,它挂在我们的开发服务器上.我的目标是尝试自动将已提交项目的副本签出到服务器上托管的目录.但是,我需要能够只读取传递给脚本的目录字符串中的最后一个目录,以便签出到托管我们项目的同一子目录. 例如,如果我对项目“example”进行SVN提交,我的脚本会将“/usr/local/svn / repos / example”作为其第一个参数.我需要在字符串的末尾添加“示例”,然后用另一个字符串连接它,这样我就可以签出...

linux – bash cron flock screen【代码】

我正在使用cron定期运行bash脚本,并尝试使用flock来防止此脚本及其创建的进程多次运行. crontab中每分钟运行它的条目是:*/1 * * * * flock -n /tmp/mylockfile /home/user/myscript.sh arg1 arg2问题是,myscript.sh在分离模式下生成多个screen会话,它包含for i in {1..3}; do screen -d -m ./mysubscript.sh arg3 done如上所示运行“-d -m”的屏幕以“分离”模式启动屏幕作为分叉进程,但这些进程不会从flock继承锁定,因此每分钟运...

linux – BASH中带空格的文件名【代码】

我正在尝试编写脚本来裁剪并将大型照片调整为高清壁纸.#! /bin/bashfor i in `ls *.jpg` dowidth=`identify -format '%w' $i`height=`identify -format '%h' $i`if [ `echo "$width/$height > 16/9" | bc -l` ]thenexec `convert $i -resize 1920 -gravity Center -crop '1920x1080+0+0' +repage temp`elseexec `convert $i -resize x1080 -gravity Center -crop 1920x1080+0+0 +repage temp`firm $imv temp $i done但似乎脚本存在...

linux – 在bash脚本中使用“备用屏幕”【代码】

备用屏幕被许多“用户交互”终端应用程序使用,如vim,htop,screen,alsamixer,less,……它就像终端内容的不同缓冲区,当应用程序退出时消失,所以整个终端恢复,看起来应用程序没有输出任何东西. 我想在我自己的shell(bash)脚本中实现完全相同的东西,除了它不必是可移植的.我坚持只使用linux和基于xterm的终端模拟器;但是如果可能的话,解决方案应该使用类似tput的东西.但是,我不想使用某些外部脚本语言(甚至是类似C的东西). 虽然我不想使...

linux – 如何在bash中使用for-each循环迭代文件路径?【代码】

以下命令尝试枚举当前目录中的所有* .txt文件并逐个处理它们:for line in "find . -iname '*.txt'"; do echo $linels -l $line; done为什么我会收到以下错误?:ls: invalid option -- 'e' Try `ls --help' for more information.解决方法:这是循环文件的更好方法,因为它处理文件名中的空格和换行符:find . -type f -iname "*.txt" -print0 | while IFS= read -r -d $'\0' line; doecho "$line"ls -l "$line" done

linux – 设置变量时找不到bash命令【代码】

我正在编写一个shell脚本,我设置的变量很少,其值是命令的输出. 我得到的错误是:$ $tag_name="proddeploy-$(date +"%Y%m%d_%H%M")" -bash: =proddeploy-20141003_0500: command not found现在,我确实阅读了other similar questions并基于它,我尝试了各种各样的事情: 将命令分成两个调用$$deploy_date=date +"%Y%m%d_%H%M" bash: =date: command not found $$tag_name="proddeploy-$deploy_date" bash: proddeploy- command not fo...

linux – Bash:整数表达式预期【代码】

参见英文答案 > How to compare two floating point numbers in Bash? 17个我正在尝试执行简单的数学运算,检查变量是否大于或等于“1.5”但我得到[:2.41:整数表达式预期 码:reSum=$(expr "scale=1;555/230" | bc)if [ $reSum -ge "1.5" ]; then ... fi如何在shell脚本中进行浮点比较?解决方法: if echo 555 230 | awk '{exit $1/$2 >= 1.5 ? 0 : 1}' then# ... fi

Bash文件在windows for testng中运行正常但它在linux / mac中不起作用【代码】

我的bash文件在windows中运行正常,但它在linux / mac中不起作用.我用testng创建了一个selenium项目,我想创建一个bash文件,这样我可以在没有IDE的情况下运行我的项目 我已经搜索过,但直到没有得到任何解决方案 终端出错: – >bash TestNg_RunMe.bat >Error: Could not find or load main class ..src.lib.selenium-java-2.46.0.jar >TestNg_RunMe.bat: line 1: ./bin: Is a directory注意: – 我也使用bash命令在linux和mac中运行...

linux – Bash虽然读取循环比cat慢得多,为什么?【代码】

一个简单的测试脚本:while read LINE; doLINECOUNT=$(($LINECOUNT+1))if [[ $(($LINECOUNT % 1000)) -eq 0 ]]; then echo $LINECOUNT; fi done当我做cat my450klinefile.txt | myscript CPU锁定为100%,每秒可处理大约1000行.大约5分钟处理cat my450klinefile.txt> / dev / null在半秒内完成的事情. 有没有更有效的方法来实现这一点.我只需要从stdin读取一行,计算字节数,然后将其写入命名管道.但即便是这个例子的速度也很慢. 每1G...

linux – 在sudo调用的Bash脚本中识别用户【代码】

如果我创建包含以下内容的脚本/root/bin/whoami.sh:#!/bin/bash whoami并且这个脚本由具有正确配置的sudo的用户调用,它将指示root有没有快速的方法来获取脚本中的实际用户,还是我必须求助于传递此用户名的参数?解决方法:如果你使用sudo su – $SUDO_USER不起作用.它还需要多次检查 – 如果$USER ==’root’则获得$SUDO_USER. 而不是命令whoami使用谁是我.这将运行为当前会话筛选的who命令.它为您提供了比您需要的更多信息.所以...

linux – 语法错误:“(”意外 – 在bash脚本中使用!(*.sh)【代码】

我想运行一个sh文件:#!/bin/bash for f in !(*.sh); doffmpeg -i "$f" -vf yadif=0:-1 -threads 0 -c:v libx264 -pix_fmt yuv420p -r 29.97 -b:v 3000k -s 1280x720 -preset:v slow -profile:v Main -level 3.1 -bf 2 -movflags faststart /mnt/media/out-mp4/"${f%.mxf}.mp4"rm $f done但是,我收到以下错误:2: task1.sh: Syntax error: "(" unexpected如果我直接在命令行上尝试,它可以很好地工作.the path and ...

linux – 在bash中使用变量的别名【代码】

参见英文答案 > Make a Bash alias that takes a parameter? 13个我想在bash中创建一个别名,如下所示:alias tail_ls="ls -l $1 | tail"因此,如果有人输入:tail_ls /etc/ 它只会显示目录中的最后10个文件. 但1美元似乎对我不起作用.有什么办法可以在bash中引入变量.解决方法:我为它创建了一个函数,而不是别名,然后导出它,如下所示:function tail_ls { ls -l "$1" | tail; }export -f tail_ls...

linux – Bash Script – 迭代find的输出【代码】

我有一个bash脚本,我需要遍历find命令的输出的每一行,但看起来我正在从find命令迭代每个Word(空格分隔).到目前为止我的脚本看起来像这样:folders=`find -maxdepth 1 -type d`for $i in $folders doecho $i done我希望这会给出如下输出:./dir1 and foo ./dir2 and bar ./dir3 and baz但我得到这样的输出:./dir1 and foo ./dir2 and bar ./dir3 and baz我在这做错了什么?解决方法:由于您没有使用find的任何更高级功能,因此可以使...

linux – 如何在bash中将命令输出存储到变量时保留换行符?【代码】

我在Linux上使用bash shell.我有这个简单的脚本……#!/bin/bashTEMP=`sed -n '/'"Starting deployment of"'/,/'"Failed to start context"'/p' "/usr/java/jboss/standalone/log/server.log" | tac | awk '/'"Starting deployment of"'/ {print;exit} 1' | tac` echo $TEMP但是,当我运行此脚本时./temp.sh所有输出都打印出来没有回车/换行.不知道我将输出存储到$TEMP的方式,还是echo命令本身. 如何将命令的输出存储到变量并保留换行...

在Linux / Bash中随机改组行【代码】

我在linux中有一些文件.例如2,我需要在一个文件中混洗文件. 例如$cat file1 line 1 line 2 line 3 line 4 line 5 line 6 line 7 line 8和$cat file2 linea one linea two linea three linea four linea five linea six linea seven linea eight后来我改变这两个文件,我可以得到类似的东西:linea eight line 4 linea five line 1 linea three line 8 linea seven line 5 linea two linea one line 2 linea four line 7 linea six l...