Получив мой чек для работы с файлами и dirs, я решил разбить их на отдельные функции и вместо этого сделать вызовы. Что я делаю не так? И жаль, что задал столько вопросов в последнее время.bash - что я делаю сейчас неправильно?
function checkForFilesInCurrentDir(){
# check if there are files in the current directory
doFilesExist=`find . -maxdepth 1 -type f`
if [ -z "$doFilesExist" ]; then
echo "no files"
return 0
else
echo "some files"
return 1
fi
}
function checkForDirsInCurrentDir(){
# check if there are dirs excluding . and .. in the current directory
doDirsExist=`find . -mindepth 1 -maxdepth 1 -type d`
if [ -z "$doDirsExist" ]; then
echo "no dirs"
return 0
else
echo "some dirs"
return 1
fi
}
# function to cd to the next non-empty directory or next branching directory
function cdwn(){
# check if there are files in current dir
filesInDir=`checkForFilesInCurrentDir`
dirsInDir=`checkForDirsInCurrentDir`
if [[ "$filesInDir" -eq 1 ]] && [[ "$dirsInDir" -eq 1 ]]; then
echo "now is a good time to cd"
else
echo "dirs or files detected"
fi
}
до моего возвращения истина/ложь и тестирование в Teh таким же образом, но я изменил возвращения 1/0 на всякий случай, но это не кажется, проблема. Это занимает больше времени, чем это когда-либо спасет меня от его использования, поэтому мне нужно убедиться, что я узнаю из этого, поэтому мои будущие начинания - это более быстрые дела ...
Я получаю следующий вывод при запуске программы. sh.exe ": [[: нет файлов: ошибка синтаксиса в выражении (маркер ошибки„файлы“) или каталоги файлов, обнаруженных
я, возможно, следует упомянуть, что я на окнах 7 с помощью мерзавец Баш терминал
Не приносите извинения за задание вопросов, пока вы 1: тщательно рассмотрели решение самостоятельно и 2: задайте свой вопрос в ясной форме. Ваш вопрос не так ясен, старайтесь быть более точным и старайтесь всегда включать * минимальный * код. К этому последнему предложению я хочу включить код, но не все, только соответствующие части или, в идеале, минимальный пример, в котором вы можете воспроизвести аномалию. – ShellFish
Я не знаю, что случилось, поэтому я не знаю минимального количества необходимого кода ... Я звоню в 2 функции. Один проверяет, есть ли файлы в текущем каталоге, а другой - для каталогов, исключая. и .. Я думаю, проблема в функции cwdn, так как две другие, безусловно, работают сейчас.В настоящее время я очень хочу распечатать сообщение, если в текущем рабочем каталоге нет файлов или dirs, или распечатать сообщение, в котором указаны файлы или файлы, обнаруженные иначе ... – user122072
Кстати, если вы используете 'find -mindepth 1', вы не найдет '.' и' ..', поэтому вы также можете проверить его с помощью '[-z ...]'. – ShellFish