проверьте, существует ли файл с-f и преобразовывает результат в переменную

при попытке заставить follwoing управлять для поиска полной прекрасной работы имени правильно, но я не могу на данный момент.

Команда я использую для поиска файла "Листа*":


PathFileIN_Elab=/root/Testms/Files

ChkFileName="$(ls -1 -f $PathFileIN_Elab/"$line"* |xargs basename)"
[ -f "${ChkFileName}" ] && echo "File exist"; echo  "Err: $?"; NomeFil="${ChkFileName}" || echo "File does not exist"; echo "Err: $?"
echo ValNomeFileFullExt: "${ChkFileName}"

Результат, когда файл "Листа* "существует:


Допустите ошибку: 1

Допустите ошибку: 0

ValNomeFileFullExt: Lista.txt


++ Я не вижу, что какой-либо из моих echos для файла существовать или не, но код возврата "допускает ошибку" для обоих случаев... почему?

Результат, когда файл "Листа*" не существует:


ls: impossibile accedere/root/Testms/Files/Lista*: Никакое такое базовое имя файла или каталога: недостающий операнд

Usare 'базовое имя - помогают' на ulteriori informazioni.

Допустите ошибку: 1

Допустите ошибку: 0

ValNomeFileFullExt:


++ никакие echos для файла не существуют или не + код возврата как прежде плюс сообщение базового имени

То, что я пытаюсь сделать, должно иметь хорошую проверку имени файла (если существуют с расширением или не), и установите его как var, в котором я буду нуждаться после той проверки, и таким образом:

a) Таким образом, если файл существует, я установил var с полным именем: $ NomeFil =" {ChkFileName}"

b) если бы файл не существует, я хотел бы выполнить команду (ny теперь в тесте, это - просто эхо).

Кто-то может помочь мне? я являюсь новым на сценариях удара.

Заранее спасибо.

0
задан 7 February 2020 в 16:37

1 ответ

При использовании соответствия можно ожидать нуль, или больше огрызается, таким образом, хорошо использовать a for цикл для тестирования одного объекта за один раз или это повредит Ваш -f тестовый оператор.

#!/bin/bash

shopt -s nullglob

a="Lista*"
b="/root/Testms/Files/$a"

for c in $b; do
   [[ -f $c ]] && { d=1; break; }
done
[[ $d ]] && { echo File exists; \
              echo ValNomeFileFullExt: $(basename "$c"); } || \
              echo File does not exists
0
ответ дан 20 February 2020 в 22:58

Другие вопросы по тегам:

Похожие вопросы: