我有代码匹配:
if [ $LAST_MODIFIED -lt 3600 || ! -f "$i" ]; then
wget $WGET_OPTS $BASE$i
LAST_MODIFIED=`echo "\`date +%s\` - \`stat -c %Y $i\`" | bc`
if [ $LAST_MODIFIED -lt 500 ]; then
$FILES_MODIFIED++
fi
fi
Run Code Online (Sandbox Code Playgroud)
$i 通过定义
for i in `/bin/grep ".gz" index.html | awk -F\" '{print $2}'`
Run Code Online (Sandbox Code Playgroud)
但是,bash告诉我
[: missing `]'
Run Code Online (Sandbox Code Playgroud)
和
-f: command not found
为什么?
您应该使用[[ ... ]]而不是代替[ ... ]或使用-o代替||.
if [[ $LAST_MODIFIED -lt 3600 || ! -f "$i" ]]; then
Run Code Online (Sandbox Code Playgroud)
要么:
if [ $LAST_MODIFIED -lt 3600 -o ! -f "$i" ]; then
Run Code Online (Sandbox Code Playgroud)
请参见:http://www.ibm.com/developerworks/library/l-bash-test.html
| 归档时间: |
|
| 查看次数: |
1416 次 |
| 最近记录: |