#!/bin/bash
for dir in /home/username/git/*/
do
for file in "$dir"/*
do
if [[ -f $file ]]
then
echo "$file"
fi
done
done
当我尝试运行它时。我得到了
syntax error near unexpected toke' `do
'rocTest.sh: line 3: `do
为什么?
答案 0 :(得分:1)
始终使用"$file"
(带引号)来处理“有问题”的文件名;特别是if [[ -f $file ]]
应该是
if [[ -f "$file" ]] ...
请注意,bash并不总是在/ bin中(例如,FreeBSD将它放在/ usr / local / bin中);为了更广泛的可移植性,使用
#!/usr/bin/env bash
或#!/bin/sh
并确保删除bash-isms (例如在Debian / Ubuntu上使用checkbashisms
)。例如。写if test -f "$file"
而不是[[ -f "$file" ]]