Articles of shell

如何将Example.bat更改为Example.pl?

我已经读过其他线程在这里input链接描述讨论L / UNIX的转换,但没有一个令人满意的。 我在编写我自己的脚本时也尝试了很多黑客types的方法。 我有以下example.bat脚本是代表我想要在UNIX上运行的脚本的types。 码: echo "Example.bat" perl script1 param.in newParam.in perl script2 newParam.in stuff.D2D stuff.D2C program.exe stuff.D2C perl script3 stuff.DIS results.out 我的问题是我不知道如何处理Unix和Bash shell中的程序。 我试图把它们放在一个系统()中,但是没有奏效。 有人可以帮帮我吗? 谢谢!

bash:$ _在cronjob中是空的

cd some_dir && php some_crone.php || echo "$? $_" | xargs ./some_handler.php 所以当我从控制台运行这段代码时,我得到了正确的值$? 和$ _ $? – 退出状态$ _ – 给上一个命令的最后一个参数。 在shell启动时,它给出正在执行的shell脚本的绝对文件名。 但是当我把这个代码cronjob: crontab -e */1 * * * * cd some_dir && php some_crone.php || echo "$? $_" | xargs ./some_handler.php 我有一个空的$ _。 请帮忙。 我不明白是什么问题?

合并和汇总来自多个文件的数据

我有两个文件,看起来像这样: 文件1 aaa 5 bbb 2 ccc 9 ddd 46 eee 89 fff 56 文件2 aaa 54 bbb 8 ccc 16 ddd 4 eee 66 fff 9 我想有具体的列的总和(例如,两个文件中的aaa的总和和ccc + ddd的总和和bbb的总和+ eee的总和+ fff的总和) 有没有一个简单的方法来做到这一点与awk例如?

使用邮件命令在我的电子邮件中不显示主题名称

我正在使用邮件命令发送电子邮件。 它工作正常。 echo "Ignore this email" | mail -s "Test Data" DL-host-PD-WAS-TT_Emp@corp.host.com 但是我唯一的困惑是,在我的电子邮件中,我没有得到任何主题,并且在我的电子邮件中始终显示为(no subject) ,因为我也在上述命令中指定了主题选项-s但它不起作用以某种方式猜测。 我正在运行SunOS。 bash-3.00$ uname -a SunOS lvsaishdc3in0001 5.10 Generic_142901-02 i86pc i386 i86pc 而且我也没有看到To:在我的电子邮件列表。 我怎样才能使这个东西的作品?

运行程序的bash脚本,用于没有特定文件的目录

我需要一个Bash脚本来执行所有没有特定文件的目录的程序,并在同一个目录下创build输出文件。这个程序需要一个input文件,它存在于每个目录下,名字是* .DNA.fasta。假设我有以下目录也可能包含子目录 dir1/a.protein.fasta dir2/b.protein.fasta dir3/anyfile dir4/x.orf.fasta 我已经开始find没有特定文件名称是* .protein.fasta的目录 在这种情况下,我想dir3和dir4被列出(因为他们不包含*.protein.fasta )我已经试过这个代码: find . -maxdepth 1 -type d \! -exec test -e '{}/*protein.fasta' \; -print 但似乎我错过了一些不起作用的东西。 我也不知道如何处理整个故事。

如何从一个目录中删除几个文件的所有文件?

我有一个目录结构如下所示: /var/www/html/pictures/media0/01/test_01.jpg /var/www/html/pictures/media0/01/test_02.jpg /var/www/html/pictures/media0/01/test_03.jpg /var/www/html/pictures/media0/01/test_04.jpg /var/www/html/pictures/media0/01/test_05.jpg 我想通过使用一个linux命令删除test_03.jpg和test_05.jpg以外的所有文件,也许rm ? 有任何想法吗?

在shell脚本中访问两个不同的Postgres数据库时发生密码问题

我正在编写一个shell脚本,它将从一台服务器执行pg_dump,稍后它将把转储恢复到另一台服务器上的数据库中。 要访问第一台服务器上的Postgres数据库,我使用export PGPASSWORD来避免密码提示。 当我在第二台服务器的Postgres数据库上执行还原时,系统会提示input用户密码。 我试图重新声明导出PGPASSWORD(因为这个数据库的密码是不同的),但是这是行不通的。 我怀疑它有一个事实,我必须加倍SSH跳来访问第二个数据库: export PGPASSWORD=****** perform pg_dump … export PGPASSWORD=******** cat out.sql | ssh -i .ssh/server1.pem root@dev.hostname.com "ssh -i .ssh/server2 \ 0.0.0.0 psql -U postgres -h localhost -p 5432 DBNAME" 以上结果是: Password for user postgres: psql: FATAL: password authentication failed for user "postgres" 有没有人有什么build议? 谢谢!

语法错误附近的意外令牌

./csf_install.sh: line 30: syntax error near unexpected token `CHECK_distro' ./csf_install.sh: line 30: `CHECK_distro()' 我的代码: if [ "$(whoami &2>/dev/null)" != "root" ] && [ "$(id -un &2>/dev/null)" != "root" ] ; then $BIN_ECHO " must be root to run this script " exit 1 else $BIN_ECHO -e " permission check passed " fi CHECK_architecture() CHECK_distro() … […]

如果Bash脚本已经在运行,请继续

一个进程完成后,我有一个bash脚本被程序调用。 我需要一个方法让这个bash脚本等待,如果自己的另一个实例正在运行退出,然后继续。 我不能只使用locking文件并退出,因为脚本不会在任何一种常规的时间表上再次被调用。

将以逗号分隔的数字与string进行模式匹配

我该如何做一个模式匹配:4,7,9 …. n – 以逗号分隔的数字string作为用户input? 我正在使用case语句,我相信,案例,而不是使用模式匹配比正则expression式。 这是用户得到的: Do you want to delete any of these? [ 1 ] launch-EOsgR4 [ 2 ] launch-SWZQdJ [ 3 ] launch-tHAdIm [ 4 ] launchd-235.z4KTVx [ 5 ] launchd-257.nM2wOZ [ 6 ] progress.log [ 7 ] ssh-8pISGGnlZ5 —————————————- Single: 4; Multiple: 2,3; Range: 4..7 a to delete all; n […]