我正在寻找一个testing,如果环境variables被定义并且具有不同于0 , false或NULL值将返回true 。 ENABLE_SOMETHING=1 # or ENABLE_SOMETHING=true if … do … 注意:在任何情况下bash都应该抱怨variables没有被定义或者有一个奇怪的值,除了0,空,假或者没有被定义的东西都被认为是真的。
我试验性地运行, if bat1 == 1 then echo yes fi并卡在一个单angular括号提示purgatory其中Ctrl + C或Z无法打开门。 有什么build议么?
我在文件名中有一堆“空格”的目录中有一堆文件。 如何用“空格”对所有文件名执行批量重命名,并用“_”字符replace它们。 看看其他的解决scheme,我已经尝试了以下命令w / o成功: 找 。 -name'* *'-exec rename'''_'{} + find:重命名:没有这样的文件或目录
我在shell脚本方面的经验非常有限,并且希望每周都有一些脚本来支持我的博客(Wordpress)。 这是我到目前为止 #!/bin/bash # Determine current date setenv CURDATE date +%Y%m%d # Backup DB & email it to me mysqldump dbname -u user -ppassword | gzip | uuencode ${CURDATE}dbname.sql.gz | mail -s "backup for dbname ${CURDATE}" [email protected] cd /home/myhome # Zip blog tar cf – blog.mysite.me | gzip – > ~/backups/${CURDATE}blog.mysite.me.tar.gz 这是我有点卡住了…我正在考虑自己的博客目录电子邮件,但是当这个变得更大,然后10MB左右呢? 我怎么会脚本这分裂这个和给我发电子邮件大块? 我觉得更好的另一个build议是将备份FTP到我拥有的另一个VPS。 但是为了空间的缘故,我只想保留最近的10次备份。 […]
问候, 我正在写一个简单的bash脚本,需要parsing文件的内容到一个数组中。 文件中的条目是“新行”分隔 – 所以文件看起来像这样: path/to/file path/to/other/file 我想parsing的内容,并重复他们。 我的代码目前看起来像: CONTENT=`cat /path/to/text/file.txt` for PATH in $CONTENT do echo $PATH chmod -R 440 $PATH fi 这段代码对于UNIX行尾的文件非常有用。 但是,如果使用Windows格式的文本文件,它会凄惨地窒息。 “echo $ PATH”语句产生正确的path,但chmod失败,说文件不存在。 我的诀窍是,Windows行结束没有得到修剪,所以它试图chmod文件path,包括一个新的行字符。 无论目标文件是用Unix还是Windows换行创build的,我都需要使这个工作成为可能 – 但是由于我对shell脚本有点新,所以我并不确定如何去做。 我感谢您的帮助!
我有一个脚本,我用sudo – sudo script调用,我希望能够看到运行脚本(不是root)的用户的用户名。 在脚本内部粘贴whoami或id -un只是给了我root 。
应用程序在我的/ tmp目录中创build了一个名为“-123456”的目录。 在Bash中,rm -rf *返回:bash:cd:-7:无效的选项 rm -rf“-123456”同样的事情。 帮帮我?
任务:运行由3-5个命令(并行/背景)组成的块。 示例块: dd if=/dev/urandom of=/mnt/1/x bs=1024 count=1024000000 & dd if=/dev/urandom of=/mnt/2/x bs=1024 count=1024000000 & dd if=/dev/urandom of=/mnt/3/x bs=1024 count=1024000000 & 完成后,下一个块应该运行。 我想,这可以通过locking文件来完成: task1.sh: real_task1 real_param1 ; rm /var/lock/myscript/task1.lock task2.sh: real_task2 real_param1 ; rm /var/lock/myscript/task2.lock … taskgen.sh: # loop # while directory isn't empty – wait… gen_tasks.pl # build task files from some queue for i […]
我怎样才能杀死所有的Python进程,不包括一个Python脚本。 (我知道它的名字,但它的pid有时可以改变)。 我需要一种pkill -f "python"但不包括python特定的脚本。 请指教。
好的,从我的angular度来看,这是一个非常实用的用例。 假设我有一个简单的shell oneliner,它将输出logging到一个文件中。 这可以是任何东西,例如tcpdump。 有没有任何通用的和微不足道的方法,以确保输出文件不会超过给定的大小? 在这之后,是为了防止错误地填充安装点上的整个可用空间。 如果我忘记脚本,或者每小时会产生大量的数据,那么这个简单的debugging任务可能会导致系统崩溃。 现在,我知道一些工具中的选项(如tcpdump中的-W / -C的组合)。 我需要的是非常通用的故障安全。 长话短说 – 当我运行一个脚本,如: % this -is –my=very|awsome|script >> /var/tmp/output.log 如何确保output.log永远不会超过1GB。 脚本可能会崩溃,被杀害或任何其他。 我正在寻找的解决scheme应该是简单易用的,只使用ubuntu / debian / fedora等stream行发行版中可用的工具。 一般来说,广泛可用的东西 无论语言/技术如何,复杂的多行程序都不是一个选项。