Како проверити да ли датотека постоји у басх -у

How Check If File Exists Bash



Постоји неколико начина за проверу доступности датотеке у Линуксу. Наредба теста у басх скриптирању један је од кључних приступа провери постојања датотеке.
Фокус овог водича је расправљати о постојању датотеке у вашем систему путем басх скриптирања:

Како проверити постојање датотеке помоћу басх скрипти:

1) Уношењем назива датотеке у терминал:





Прво морамо да направимо датотеку басх скрипте, користећи доле наведену команду:



$додиртестфиле.сх

Назив датотеке коју сам направио је тестфиле.сх, екстензија .сх означава датотеку скрипте љуске:







Отворите тестфиле.сх у било ком уређивачу текста. Затим напишите скрипту, сачувајте је притиском на саве.

Један од начина је да пронађете датотеку тако што ћете затражити име датотеке од корисника у терминалу.



Употреба да бисте проверили постојање датотеке.

Напишите испод скрипту:

#!/бин/басх
Избацио „Унесите назив датотеке“
читатиневфиле1
ако [ '$ невфиле1' ]
онда
Избацио 'Датотека је пронађена'
елсе
Избацио 'Датотека није пронађена'
бити

Вратите се на терминал и покрените датотеку за штампање резултата:

./филенаме.сх

Порука о одбијању дозволе би се приказала на терминалу.

Учините га извршним извршавањем доле наведене команде:

$цхмод+ к тестфиле.сх

Унесите назив датотеке и штампаће испис:

2) Уношењем назива датотеке током писања скрипте:
Други начин да пронађете датотеку давањем имена датотеци током писања скрипте. Имамо три начина да проверимо доступност датотеке. Прва користи команду теста, друга користи иф са изразом у угластим заградама, а трећа такође са иф али двоструким угластим заградама као што је доле назначено:

  1. тест ЕКСПРЕССИОН.
  2. ако [ЕКСПРЕССИОН]
  3. ако [[ЕКСПРЕССИОН]]

Хајде да то разумемо примерима:

1) тест [израз]
Копирајте дату скрипту и залепите је у уређивач, сачувајте је:

#!/бин/басх
назив документа= филе1
ако тест '$ назив датотеке';
онда
Избацио '$ филеје пронашао.'
елсе
Избацио '$ филеније пронађено '
бити

Излаз:

Пошто у мом директоријуму нема такве датотеке, код приказује поруку Датотека није пронађена.

2) ако [израз]

Копирајте следећу скрипту да бисте проверили постоји ли датотека или не:

#!/бин/басх
назив документа= мифиле.ткт
ако [ '$ назив датотеке' ];
онда
Избацио '$ назив датотекеје пронашао.'
елсе
Избацио 'назив датотеке није пронађен'
бити

Излаз:

3) ако [[израз]]

Копирајте доле написану скрипту и залепите је на терминал:

#!/бин/басх
назив документа= тестфиле
ако [[ '$ назив датотеке' ]];
онда
Избацио '$ назив датотекеје пронашао.'
елсе
Избацио '$ назив датотекеније пронађено '
бити

Излаз:

Да бисте проверили директоријум:

3) Уношењем имена директоријума током писања скрипте

Користити заставица за проверу постојања директоријума.

У доле наведеној скрипти, дир11 је променљива у коју складиштите датотеку ону коју пронађете; у овом примеру желим да проверим да ли име директоријума тестДир постоји или не.

#!/бин/басх
дир11= тестДир
ако [ '$ дир11' ]
онда
Избацио 'Именик је пронађен'
елсе
Избацио 'Именик није пронађен'
бити

Излаз:

2) Уносом назива датотеке у терминал:
Када покренете команду на терминалу да бисте проверили да ли директоријум постоји или не, морате да унесете име директоријума који тражите:

#!/бин/басх
Избацио 'откуцајте име директоријума.'
читатиДир1
ако [ 'Дир1' ]
онда
Избацио 'директоријум је пронађен'
елсе
Избацио 'директоријум није пронађен'
бити

Излаз:

Провера датотеке без употребе иф наредбе:

Наредба теста може се извршити без наредбе иф. Приказаће излаз само ако датотека постоји; иначе, не би било излаза:

Напишите скрипту:

  1. тест мифиле.ткт&& Избацио 'датотека је пронађена'

  2. [ мифиле.ткт] && Избацио '$ филеје пронађена.'

  3. [[ мифиле.ткт]] && Избацио '$ филеје пронађена.'

Излаз:

Провера директоријума без употребе иф наредбе:

Помоћу доле наведених изјава проверите да ли директоријум постоји или не:

  1. [[ тестДир]] && Избацио 'директоријум постоји'

  2. 2) [ тестДир] && Избацио 'директоријум постоји'

Излаз:

Проверавање више датотека/директоријума:

1) Проверавање више датотека помоћу иф наредби:
Користите заставицу -а да бисте проверили постојање различитих датотека уместо да користите угнежђене наредбе иф/елсе:

#!/бин/басх
ако [ нев_филе.ткт-до невфиле.ткт];онда
Избацио 'Обе датотеке постоје.'
бити

Други начин је:

#!/бин/басх
ако [[ нев_филе.ткт&& невфиле.ткт]];онда
Избацио 'Обе датотеке постоје.'
бити

Излаз:

2) Проверавање више датотека без употребе иф наредбе:
Користите следећу изјаву за проверу више датотека истовремено 1 без коришћења ако:

  1. [[ нев_филе.ткт&& невфиле.ткт]] && ИзбациоОбје датотеке излазе.

  2. [[ нев_филе.ткт&& невфиле.ткт]] && ИзбациоОбје датотеке излазе.

Излаз:

Закључак:

Овај чланак је показао како да користите басх скрипте за проверу датотеке или директоријума. Користили смо различите опције за проверу доступности датотеке. Прво, користимо тест наредбу са различитим заставама. Затим смо научили употребу иф, угнијежђеног иф-елсе, и без иф наредби за провјеру датотеке или директорија. Такође смо прегледали како да проверимо више датотека или директоријума.