在bash脚本中查找“缺少参数”错误

时间:2013-03-01 18:24:43

标签: bash shell unix

我正在设置一个脚本,将svn add所有新的非subversion文件转换为subversion,然后进行提交。

#!/bin/bash
find /path/to/uploads -type f -mmin -5 -not -iwholename
'*.svn*'|xargs -r /usr/bin/svn add
sleep 2
/usr/bin/svn commit /path/to/uploads -m auto_upload

当我从shell运行时,我得到:

find: missing argument to `-iwholename'
upload_images.sh: line 3: *.svn*: command not found

我是否需要摆脱星号或其他东西?我糊涂了。我在这里做错了什么?

1 个答案:

答案 0 :(得分:5)

find命令的中间有一个换行符。这将导致bash将其解释为两个单独的命令。要么使它成为一行:

find /path/to/uploads -type f -mmin -5 -not -iwholename '*.svn*'|xargs -r /usr/bin/svn add

或使用\继续:

find /path/to/uploads -type f -mmin -5 -not -iwholename \
'*.svn*'|xargs -r /usr/bin/svn add

听起来像是复制+粘贴错误。