草庐IT

BASH_SOURCE

全部标签

linux - bash 脚本中的错误替换

我正在尝试让脚本工作以将交换空间添加到VPS,作为lathismethod.的解决方法我以为我让它工作了,但现在,每次我收到错误:fakeswap.sh:5:Badsubstitution每当我尝试这样执行它时:sudoshfakeswap.sh.下面是我的代码:#!/bin/bashSWAP="${1:-512}"NEW="$[SWAP*1024]";TEMP="${NEW//?/}";OLD="${TEMP:1}0"umount/proc/meminfo2>/dev/nullsed"/^Swap\(Total\|Free\):/s,$OLD,$NEW,"/proc/meminfo>

linux - 在 EC2 (Ubuntu) 上运行 bash 脚本时出现奇怪的 "Permission denied"异常

我附加了一个EBSblock并将其安装在运行Ubuntu12.04的EC2实例上的“/data”。有一个备份脚本可以正常运行,但是在我将脚本移动到“/data/backup”文件夹后,它无法执行,并出现错误:-bash:./db_backup.sh:Permissiondenied权限是:-rwxr-xr-x1ubuntuubuntu2.3KNov2203:25db_backup.sh如果我用“sudo”运行它,没有错误也没有输出,但应该有一些东西回显到控制台。我也尝试使用“strace”来跟踪执行,得到:execve("./db_backup.sh",["./db_backup.sh

python - 从 Python 运行 bash 脚本

我需要从Python运行bash脚本。我让它按如下方式工作:importosos.system("xterm-hold-escipt.sh")这不完全是我在做的,但几乎是我的想法。这工作正常,一个新的终端窗口打开,我为了调试目的保留它,但我的问题是我需要python脚本继续运行,即使它没有完成。我有什么办法可以做到这一点吗? 最佳答案 我推荐你使用subprocess模块:docs你可以importsubprocesscmd="xterm-hold-escipt.sh"#noblock,itstartasubprocess.p=su

linux - Bash捕获运行脚本的输出

我可能只是不知道如何表达我的问题,但我一直无法得到我正在寻找的答案。所以我想做的是在bash脚本中运行命令或脚本逐行捕获输出并根据某个值检查它。我已经尝试过了#!/bin/bash./runningscript.sh|whilereadline;doecho"output$line"done和#!/bin/bash./runningscript.sh|{readlineecho"output$line"}两者似乎都执行了给我正常输出的脚本。我想要的是从这个bash脚本中处理来自runningscript.sh的每一行输出,因为它是输出我不希望它等到runningscript.sh完成运

linux - 移动或删除文件时使 `tail -f` 退出的 bash 脚本

当前删除、移动或重命名一个运行有tail-f的文件没有任何作用,我希望它中止。我已经阅读了手册页,似乎-f应该在文件移动时中止并且-F将跟随文件但是在MacOSX上它似乎-f和-F是相同的。如何编写bash脚本使tail-f在文件移动后干净退出? 最佳答案 在Linux上,您可以使用tail--follow=name(而不仅仅是-f,它等同于--follow=descriptor)来实现你想要的,但只有当文件被删除而不是移动时-一旦文件被删除,就会报告一条错误消息并且tail退出(使用代码1);遗憾的是,相比之下,如果文件只是移动(

python - 如何使用 bash 脚本退出 Django 开发服务器?

我编写了一个bash脚本来启动Django开发服务器,但是,我也希望能够在它使用bash脚本运行时退出服务器。我正在为Koding.com编写一个网络应用程序,它通过按下按钮运行bash脚本,在链接到用户个人VM的在线终端中启动Django进程,我希望用户能够结束该进程也可以按一下按钮。我知道控制C会结束这个过程,但我一直无法在bash脚本中找到如何做到这一点。我该怎么做呢?谢谢!更新:我最终结合了我为这个问题选择的答案和我问的另一个问题(如何在djangoshell中运行unix命令)的答案来解决我的问题:https://stackoverflow.com/a/22777849/21

linux - Bash printf %q 指令无效

我想在我的.bashrc文件中更改我的PS1。我找到了一个使用printf和%q指令来转义字符的脚本:#!/bin/bashSTR=$(printf"%q""PS1=\u@\h:\w\$")sed-i'/PS1/c\'"$STR"~/.bashrc问题是我得到这个错误:script.sh:2:printf:%q:invaliddirective有什么想法吗?也许是另一种逃避角色的方式? 最佳答案 printf命令内置于bash中。它也是一个外部命令,通常安装在/usr/bin/printf中。在大多数Linux系统上,/usr/bi

linux - 在 awk 命令中使用 bash 脚本 $1 参数

我想创建一个带有参数并使用awk打印if的bash脚本这是一个孤儿进程:#find_orphan.sh:ps-elf|awk'/$1/&&!/awk/{if($5==1){print$15}}'不幸的是,我在将$1呈现为bash参数时遇到了问题。如果我在不使用$1的情况下运行它,我的程序将运行:ps-elf|awk'/some_program/&&!/awk/{if($5==1){print$15}}'我确实需要能够在bash脚本参数中指定awk搜索模式。有什么帮助吗? 最佳答案 使用awk-vvar=val将命令行值传递给awk并

linux - Bash 脚本 continue 关键字不中断循环迭代

我正在按照一系列教程来学习Bashshell脚本。其中一个练习是遍历当前目录中的文件并在这些文件中搜索模式。如果找到该模式,则脚本应将这些文件的文件大小相加。#!/bin/shpatern=echototalSize=0forfilein*do[!-f$file]&&continueifgrep$patern$file>/dev/nullthenecho"patternmatchedin$file"echo"filesizeis`stat-c%s$file`"fileSize=`stat-c%s$file`totalSize=`expr$totalSize+$fileSize`echo

linux - 使用 "watch"在 Bash 中重复运行一个函数?

这是我的第一个Bash脚本。我的Debian机器有WiFi问题。我不是来这里询问原因的,而是如何在Bash问题上贴上创可贴。我的WiFi会随机中断,通常每12-15分钟一次。我在此服务器上使用SSH,不想从物理服务器手动运行ifdownwlan0和ifupwlan0(重新连接WiFi)。这个Bash脚本的作用是尝试连接3次。如果失败三次,它就会放弃。否则,它会每隔三秒通过尝试pingGoogle来检查我的服务器是否已连接。#!/bin/bashATTEMPTS=1functiontest_connection{ping-c1www.google.comlocalEXIT_CODE=$?