Не съм сложил нищо от Тряскам, и то е, че когато навлизам в прекрасния свят на Python, съм забравил малко за този друг приятел, който ми помогна толкова много
Тук сложих нещо за ентусиастите на Bash, както се казва в заглавието ... Ще ви покажа как да проверите дали в системата има файл или папка, просто като използвате: if
Ще създадем .sh файл и ще му дадем разрешения за изпълнение, за това е достатъчно да поставите следната команда в терминал:
touch test.sh && chmod + x test.sh
Това, което направи, е да създаде файла (тест за докосване.sh) и също така ви дава разрешения за изпълнение (chmod + x test.sh)
Тогава нека напишем следното в него:
if [ -d /opt/ ];
then
echo "Sí, sí existe."
else
echo "No, no existe"
fi
Какво означава това?
Просто 😀
На първия ред - » ако [-d / opt /];
Тук питаме, съществува ли директория / opt /? Да директория / папка, тъй като -d означава директория или папка.
Тогава ако съществува, ще отпечатаме в терминала «Да, съществува.»(Това е ред 2 и 3)
В противен случай и / opt / НЕ съществува, тогава ще отпечатаме «Не, не съществува»(Редове 4 и 5)
След това в последния ред (номер 6) затваряме ако и това е всичко.
Направете теста, той ще ви покаже, че / opt / наистина съществува.
Ако искате да ви покажа другия текст (този, който не съществува), променете / opt / за друга папка, която не съществува във вашата система, например: / asd /
Както можете да видите, -d ни помага да разберем дали директорията съществува, а сега, ако променим -d на -f, е да проверим съществуването на файлове (-d = директория, -f = файл / файл)
Например:
if [ -f /etc/hosts ];
then
echo "Sí, sí existe."
else
echo "No, no existe"
fi
Ето списъка с опции:
-d - »Проверете дали съществува определена директория
-f - »Проверете дали съществува определен файл
-w - »Проверете дали определен файл има разрешения за запис
-x - »Проверете дали определен файл има разрешения за изпълнение.
И добре, няма какво повече да добавите 🙂
Знам, че това ще бъде много полезно и интересно за тези, които обичат да програмират в Bash 😉
поздрави
Друг начин да го направите, ако ... тогава..else:
test -f /etc/hosts && elcomando
Или също
test ! -f /etc/hosts && echo "no se encontró el archivo"
И т.н.
Вдясно 😀
... O_O ... Вие ли сте Хюго, Хюго от Куба? ... Използване на Windows8, WTF !!!
Е, да, запознавам се с тази операционна система и ако трябва да бъда откровен, единственото нещо, което ми се стори полезно, е мениджърът на копията, иначе аз лично го намирам за вредител, особено хибридния му интерфейс и приложенията на метрото. Харесва ми по-малко от Vista и 7 (макар и малко по-ефективни от тях), които също не ми харесаха. Единственото нещо, за което го използвам, е да играя NFS13 и Skyrim, но тази операционна система заема толкова много място, че трябваше да изтрия моя дял на Linux [snif].
Въпреки това, за ваше спокойствие, мога да ви кажа, че вчера изтеглих Arch ISO за януари и смятам да му дам вкус на неговата x86-64 версия, веднага щом получа репото (ще имате ли то? Сега, когато видях, че използва подписани пакети по подразбиране, това ми дава повече увереност да се потопя.
И баща ми също ми каза, че ще ми изпрати Sony Xperia, от който искам да се възползвам, за да науча малко програмиране за Android, което беше висящо желание. Така че успокой се, все още не съм отишъл на тъмната страна на силата, buahahahaha 😉
мъжки тест
Разбира се.
Уенас! ..
Можем да направим същия ... ..но директорията се предава като параметър ..
if [ -d $1 ];
then
echo "Sí, sí existe."
else
echo "No, no existe"
fi
И ние го наричаме като:
./test.sh / opt /
Поздрав..
IF не е цикъл xD
Подхожда ми като ръкавица за сценарий, който правя. Валидно ли е да се използват заместващи символи? Например, за да разберете дали има .mp4, тогава пуснете нещо върху тях.
ако [-f * .mp4];
...
Да, то е напълно валидно ..
Дори чрез параметри .. "* .mp4"
Например
if [ -f $1 ];
then
rm -r $1
else
ls
fi
Ако го извикате: ./test.sh * .mp4
Ако намери .mp4 файлове, той ги изтрива .. ..но не показва файловете в тази директория ..
Благодаря за отзивите и съветите! 🙂
Пропуснахте f xD
rm -rf $ 1
Това е по-вълнуващо!
Прекрасно !!!, Всеки ден, когато се влюбвам все повече в Linux, Windows беше преместен в някой тъмен ъгъл на моя твърд диск, който е на път да бъде изтрит, за да отстъпи на светлината на Linux.
Отлично! .. .. след това направете следващата стъпка .. и го извадете ..
Преди 6 месеца ок. Имам само GNU / Linux на всичките си машини и не ми трябват повече .. ..не W $ .. или Wine .. ..и съм повече от щастлив така .. 😉
И заразявам околната среда .. тъй като всички ме виждат с моя Arch, бърз, ефективен и щастлив .. ..и ме молят да инсталирам Linux .. .. да! .. 😀
Можете също така да ги проверите за различни разширения, можете да използвате нещо като
#! / Хамбар / Баш
Директория = $ HOME / Изтегляния
ако [$ Directory]; тогава
echo "Ето списък на типовете файлове:"
ехо "mp1, mp2, mp3, mp4, wav, flac, flaad, aud, midi"
ls {* .mp ?, *. wav, *. fla, *. aud * .midi}
fi
използването на {} ви позволява да посочите множество разширения в този случай, използването на "?" , е заместващ знак, който ви позволява да вземете „Всеки символ“.
Надявам се да ви помогне
Препоръчвам командата find [директория] [шаблон за търсене] –exec [команда] {} \
Не работи, поставих тези файлове в директорията:
AB20160420.TXT
AB20160421.TXT
AB20160422.TXT
AB20160423.TXT
AB20160424.TXT
AB20160425.TXT
search.sh
#! / Хамбар / Баш
ПЪТ = / tmp / TEST
cd $ МАРШРУТ
ls -la | awk '{print »« $ 9} »
ако [[-f AB.ТЕКСТ]]; тогава
echo »Въведете IF, ако има AB.ТЕКСТ "
fi
ако [-f AB20160422.TXT]; тогава
echo "вход за конкретен AB файл"
fi
когато сложа [-f AB.TXT] дава грешка
когато сложа [[-f AB.TXT]] не дава грешка, но не може да намери файла
работи само когато сложа определен файл, например:
ако [-f AB20160422.TXT]; тогава
Не мога да го накарам да работи с заместващи символи * или?
#! / usr / bin / env bash
#.кодиране = utf-8.
КОНСТАНТИ
EXIT_OK = 0
EXIT_BAD = 66
СЪДЪРЖАНЕ = »\ 033 [1 м»
NC = »\ 033 [0 м»
ЧЕРВЕН = »\ 033 [31 м»
ако [! "$ 1"];
след това
echo "липсва параметър"
изход $ EXIT_BAD
fi
cd "$ 1"
файлове = »ls -h1 $ 1»
за файл в $ ($ files); направете
echo -e "можете да направите всичко с $ BOLD $ file $ nc тук"
направен
изход $ EXIT_OK
@KZ, кажи повече за това: „и това е, защото навлизам в прекрасния свят на Python“!
ХАХАХАХ не ... малко по малко 🙂
Все още съм само начинаещ в Python, едва ли имам време да му отделя часове и часове, така че съм бавен, да, бавен, но сигурен в обучението си 😀
Благодаря ви много 😀 точно вчера си мислех как да направя това.
това с ncurses е страхотно 🙂
с 1 дума ... ОТЛИЧНО!
Дълго време усъвършенствах скрипт за изтегляне от Интернет, но се сблъсках с проблема с изтеглянето на файловете, които поисках 1 и отново, без да мога да проверя съществуването на 1ro.
Много добро tuto.
Огромният принос, тук от Чили е оценен.
Всеки ден повече LINUX ме изненадва приятно,
Да живее безплатен софтуер MIERDAAAA.
служат за
проверете дали файлът е от директория
Ако искам да проверя съществуването на какъвто и да е файл в път «/ tmp / приемници», изпълнете която и да е команда, как би било?
Аз ще бъда много благодарен
поздрави
Уважаеми, и да се определи чрез IF дали файлът е изцяло попълнен ???. Питам това, защото когато попълвате файла за предаване, той може да го вземе дори с половината данни.
Поздрави и благодарности за отговора.
Е, мисля, че трябва да добавите и пример, като например "Проверете дали няма" "файл" или "директория", като например
за да проверите дали НЕ съществува, например използвайте променлива->
Директория
#! / Хамбар / Баш
Директория = »$ HOME / Тестова директория»
Файл = »$ HOME / Тестов файл»
ако [! -d "$ Directory"]; тогава
echo "Няма $ Директория"
echo "Създаване ->" $ Directory "
mkdir "$ Директория"
още
echo "Директория" $ Directory "вече съществува
fi
ако [! -d "$ File"]; тогава
echo "Файл $ не съществува"
echo "Създаване ->" $ File "
докоснете "$ File"
още
echo "Файл" $ File "вече съществува
fi
когато правите проверката на mkdir по-късно дали терминалът може да го създаде, защото може да разбие топките, ако е папка като root или система hhah
Поздрави KZKG ^ Gaara заявка, както бих направил, за да използвам curl. Бих искал да знам как правя от конзолата, за да пигна URL, за да видя дали е наличен например http://portal.com/directorio/archivo1.php Където file1 ще съхранява IP адресите за посещение, за наблюдение на екип трябва да направя този щифт на всеки половин час, за да съм наясно с публичния IP, тъй като той се променя от време на време и не мога да се свържа чрез ssh.
Поздрави благодаря ти предварително Бог да те благослови.
Здравейте как става това
Първо, трябва да кажете, че променливата IP (например) е съдържанието на този файл, за това трябва:
1. Изтеглете файла
2. Вижте съдържанието му и вземете IP от там
3. Този IP е променливата
Например:
Тук изтегляме файла - »wget http://portal.com/directorio/archivo1.php -o файл.html
След това присвояваме променлива нейното съдържание: - »: $ {IP: =` cat file.html`}
.. ако приемем, че съдържанието на този файл има само IP, ако не, ще трябва да работите с grep, awk или head.
След като имате IP като променлива, останалото е най-простото нещо в света 🙂
Ако искате, пишете ми на имейл (kzkggaara[at]desdelinux[dot]net) С удоволствие ще ти помогна
Благодаря ви много kzkggaara много благодарен.
Здравейте, не разбирам много от изчисления и не знам дали тази публикация е свързана с проблема, който имам.
Коментирам, в случай че ме прочетете, въпреки че публикацията е отпреди година:
Оказва се, че съм създал папка на работния си плот, за да съхранявам някои видеоклипове. Е, изтрих тези видеоклипове, защото вече нямах нужда от тях и сега тази папка ми казва, че не съществува (въпреки че е видима на моя работен плот).
- Това е първият проблем, който имам:
Не мога да изтрия папката.
- Втори проблем и мисля, че е по-важно:
В опит да изтрия папката, сложих папка СНИМКИ. Сега, когато отворя папката, която "не съществува", тя е празна и СНИМКИТЕ не са там.
Как мога да възстановя снимките? Дадох опцията в папката "Показване на скрити документи", но папката СНИМКИ не се появява.
Надявам се, че можете да знаете как е решен.
Благодаря.
Има двама потребители, които са основните: root и your_user (natalia например). И двамата имат лични папки. your_user в / home и root в / (root директория). Като щракнете с десния бутон върху папката, вижте на кого принадлежи. Ако е root с вашия файлов мениджър, използвайки sudo или gksu или kdesu, в зависимост от средата, която използвате, отидете в главната директория -> root -> Desktop и вероятно ще намерите снимките и можете да изтриете папката. Някои дистрибуции, когато не сте собственик на файла или директорията и нямате разрешения за достъп, казват, че директория / файл не съществува. Ако сте собственик и не сте root, направете същото с файловия мениджър със sudo и т.н. и отидете в главната директория -> / home -> personal_folder -> Desktop и вижте дали снимките са там и дали можете да изтриете папката.
Ако това не работи, ще трябва да видите други опции от терминала (конзолата).
Здравейте, как сте? Правя работа в bash и бих искал да знам как да проверя дали има въведена директория от клавиатурата, например
#! / Хамбар / Баш
прочетете маршрут
#Enter ~ / Desktop
# Тогава се опитвам да навигирам в тази директория
cd $ път
# Получавам следното съобщение bash: cd: ~ / Desktop: Файлът или директорията не съществуват
Въпросът ми е: Какво мога да направя, за да го въведа от клавиатурата и да го взема като път на директория?
И как мога да разбера дали съществува група,
добре имам проблем в моя canaima, когато натисна бутона cunaguaro, той казва, че няма файл или директория, както би направил, за да разреши този проблем, а останалото не отваря cunaguaro, моля благодаря.
Как се прави if в BASH, ако името на файла има интервали?
Например:
Априлски данни.xlsx
За да попитате дали файлът съществува
Карлос, ето така:
ако [["$ променлива" == Данни \ месец \ от \ April.xlsx]]; след това ехо 'съвпадение'; fi
Можете също така:
ако [["$ променлива" == 'Данни за месец април.xlsx']]; след това ехо 'съвпадение'; fi
Друг вариант:
[["$ Variable" == 'Данни за месец април.xlsx']] && echo 'съвпада' || ехото „не съвпада“
В някои тъмни области на интернет те препоръчват да се използва [[]] вместо [] и ако ще сравнявате числа, тогава: ((променлива> = 3)) && echo 'променливата е по-голяма или равна на 3' || ехо 'променливата е по-малка от 3'
Следователно, за числа:
if ((число! = 4)); тогава ехото "$ {номер} не е 4"; в противен случай ехото "$ {номер} е 4"; fi
как можете да направите код за проверка, ако директорията има определен текст, за да можете да го редактирате.
например:
ако (текст1)
не прави нищо
още
променете text1 на text2
въпрос, как би било да проверявате на всеки 15 секунди дали файлът съществува или не, благодаря.
Здравейте,
това:
ако [-w / home / Komun / Logs / ti]; тогава
Разберете дали файлът може да се записва. Но това се основава на потребителски разрешения. Може ли да се направи, за да се разбере дали групата или останалите имат разрешения?