Потрібна допомога щодо стану тесту


0

Потрібна ваша допомога щодо нижченаведеного сценарію, де я тестую, якщо файл знайдений у файлі location / log / TestFile * та id є лише один файл, тоді він відобразить "Файл успішно знайдено", ще "примітка знайдена". моя друга умова - [$ sfCount == 1]; не працює. будь ласка, допоможіть мені з цим.

sfCount=`ls -l /log/TestFile* | awk '{print $9}'| wc -l |sed "s/[[:blank:]]//g" | sed '/^$/d' | sed 's/\n//g'`
sFile=`ls -l /log/TestFile* | awk '{print $9}'`

if [ -e /log/$sFile ] && [ $sfCount == 1 ]; then
    echo "File successfully Found"
    exit 0
else 
    echo "File Not found"
    exit 1
fi

Спробуйте додати, echo "<$sfCount>"щоб побачити, що насправді є в змінній.
choroba

Відповіді:


0

Ви можете отримати кількість файлів набагато простіше, виконавши наступне:

ls /log/TestFile* | wc -l

Це позбавить вас від усіх інших. Я не впевнений, чому ви отримуєте підрахунок кількості файлів, а також вводите їх у масив, щоб побачити, чи вони існують. З того, як це виглядає, ви просто хочете побачити, чи вони існують. Для цього вам потрібна лише перша команда. Отже, нам залишається:

if [ $(ls /log/TestFile* 2>/dev/null | wc -l) != 0 ]; then
    echo "File Found"
else 
    echo "File not found"
fi

"2> / dev / null" придушить вихід до STDERR, якщо файлів не знайдено. Ми просто хочемо 0, а не 0.


0

Вибачте, я повинен виправити вище, і це працює добре

----------------- Script start here ------------------------- 
sfCount=ls -l /log/TestFile* | awk '{print $9}'| wc -l |sed "s/[[:blank:]]//g" | sed '/^$/d' | sed 's/\n//g' 
sFile="TestFile*"

if [ -f $IB_DIR/$sFile ] && [ $sfCount == 1 ]; then
    echo "File successfully Found"
    exit 0
else 
    echo "File Not found"
    exit 1
fi

Мені не зрозуміло, чи ви додали інформацію до свого запитання, чи відповідали на власне запитання. Я думаю, ви відповіли на власне запитання, і це нормально (див. Як працює прийняття відповіді? ). У цьому випадку слід прийняти власну відповідь, щоб зрозуміти майбутнім відвідувачам.
jww
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.