Articles of 庆典

这个脚本有什么问题?

find /abc/companies/ -name 'ABC141*.csv' | while read fname do sftp ABC141@servername <<EOF cd ../ABC141_01/ put $fname quit EOF mv $fname ./archive/$(basename $fname)-$(date +%Y%m%d-%T) done 我曾尝试使用scp命令,它不起作用。 我正在使用无密码loginssh密钥。

而在bash循环

我在bash中的while循环有一个问题。 我从文件中读取文件名,然后我想处理它们。 问题是,while循环停在最后一行,而没有处理它,这迫使我们在该文件上有一个空的最后一行(有些往往会被删除)。 有没有办法循环包括最后一行? #datafile filename1 filename2 while read project_name do echo $project_name done < "datafile" 这将打印出filename1但不是2。 BRG Anders Olme

for bash循环给出错误

我的一个系统有bash版本2.05.8,这是相当老。 现在在这台机器上,我试图按照以下格式使用for循环 for i in {a..z} 但是,这给,请build议正确的说法

在bash中find一个configuration文件

我知道我可以source FILE或. FILE 在Bash中打开一个文件,但由于某种原因,我无法将它加载到文件中。 我一直在控制台中看到“没有这样的文件或目录”错误。 这是目录结构 /bin/script.sh (file including the config) /config.sh 无论如何,我可能会重新组织这个问题,但现在,我认为这是事实。 我试图包含这样的configuration文件: source ../config.sh source config.sh 这两个实际上都不起作用。 有任何想法吗?

将string转换为CLI指令

我有一个bash脚本中的以下内容: cmd="composer install" `"$cmd"` 这导致: composer php安装:找不到命令 但是,如果我只是在相同的bash脚本中运行这个: composer install 它工作没有问题。 我究竟做错了什么?

开始从第N行使用BASH读取文件的内容

假设我有以下内容的文件temp.txt: 1 2 3 4 5 6 如何从第3行开始使用BASH读取文件的内容,以便输出如下所示: 3 4 5 6

在bash扩展中使用感叹号

在bash中,我使用dynamic添加的用户名和密码选项来创build一个svn命令。 某些用户的密码中可能带有感叹号,可能会导致以下情况: svncmd='svn update –username=user –password password\! –non-interactive' $($svncmd) 但是,这扩大了我的感叹号,这不是我想要的。 我错过了什么? 编辑: 啊,我想我知道发生了什么事情。 使用这个命令,我可以像$ svncmd而不是$($ svncmd)那样运行它。 发生了什么事情是bash抱怨bash:at:command not found …当它试图运行“在版本xxxxx”作为一个命令。 哎呀。

重启服务的脚本大部分时间都失败

我已经创build了一个脚本来重新启动一个FTP服务(一个Java程序),如果下面这个命令的值不是零: find /home/files_to_send -name "*.pdf" -cmin +10 | wc -l 我的问题是,当脚本在testing中正常运行时,只要文件数量较多,大部分时间都会失败。 日志中出现“超时”错误。 任何人都可以告诉我我做错了什么,或者可以有人展示一个更好的方式来写这个脚本。 # FTP restart program echo `date` a=$(ps ax | grep 4992 | grep java | awk '{print $1}') echo $a FTPauto=$(find /home/files_to_send -name "*.pdf" -cmin +10 | wc -l) if [ $FTPauto != 0 ] ; then kill -9 $a cd /home/ftp_program […]

如何从compgen -c结果中排除所有shell内build函数?

我想获得我系统上所有安装的可执行文件的列表,但不包括所有内置的命令/关键字和别名,我该怎么做? 这将返回所有这些 compgen -c 但是它包括来自于的结果 compgen -a compgen -k compgen -b 是否可以用pipe道排除所有这些? 只留下我的系统上安装真正的可执行应用程序 (从$PATH )

将一个目录中的文件通过filter传递到另一个目录

我有一个充满文件的目录。 我想通过一个命令初始传递这些文件中的每一个,并将输出发送到不同目录中的另一个文件,如下所示: cat dir1/sourcefile | process.py > dir2/destfile “destfile”的名字是不重要的,它可以是任何文件名。 然而,很简单 – 新文件一直被添加到dir1,现有的文件偶尔被修改。 我该如何编写一个bash脚本(或其他types的脚本)来关注dir1,每当添加或修改一个新文件,处理它或将其重新处理成dir2?