Jeg har ikke lagt noget af Bash, og det er, at når jeg kommer ind i Pythons vidunderlige verden, har jeg glemt lidt om denne anden ven, der hjalp mig så meget 🙂
Her er noget for Bash-entusiaster, som titlen siger... Jeg viser dig, hvordan du kontrollerer, om der findes en fil eller mappe på systemet, blot ved at bruge: if
Vi skal oprette en .sh-fil og give den eksekveringstilladelser, for det er det nok at placere følgende kommando i en terminal:
touch test.sh && chmod + x test.sh
Dette, hvad han gjorde, er at oprette filen (touch test.sh) og giver dig også eksekveringstilladelser (chmod + x test.sh)
Lad os så skrive følgende i det:
if [ -d /opt/ ];
then
echo "Sí, sí existe."
else
echo "No, no existe"
fi
Hvad gør dette?
Simpelt 😀
I første linje - » hvis [-d / opt /];
Her spørger vi, findes / opt / kataloget? Ja mappe / mappe, fordi -d betyder bibliotek eller mappe.
Så hvis det findes, vil vi udskrive i terminalen «Ja, det eksisterer.»(Dette er linje 2 og 3)
Ellers og / opt / findes IKKE, så udskriver vi «Nej det eksisterer ikke»(Linie 4 og 5)
Derefter lukker vi i sidste linje (nummer 6) if og det er det.
Udfør testen, det viser dig, at / opt / findes.
Hvis du vil have mig til at vise dig den anden tekst (den der ikke findes), skal du ændre /opt/ til enhver anden mappe, der ikke findes på dit system, for eksempel: /asd/
Som du kan se, hjælper -d os med at vide, om mappen eksisterer. Hvis vi nu ændrer -d til -f, er det for at kontrollere, om der findes filer (-d = bibliotek, -f = fil / fil)
For eksempel:
if [ -f /etc/hosts ];
then
echo "Sí, sí existe."
else
echo "No, no existe"
fi
Her er listen over muligheder:
-d - »Kontroller, om der findes en bestemt mappe
-f - »Kontroller, om der findes en bestemt fil
-w - »Kontroller, om en bestemt fil har skrivetilladelser
-x - »Kontroller, om en bestemt fil har eksekveringstilladelser.
Og godt, der er ikke meget mere at tilføje 🙂
Jeg ved, at dette vil være meget nyttigt og interessant for dem, der kan lide at programmere i Bash 😉
hilsen
En anden måde at gøre det uden hvis ... så..else:
test -f /etc/hosts && elcomando
Eller også
test ! -f /etc/hosts && echo "no se encontró el archivo"
Etc.
Højre 😀
… O_O… Er du Hugo, Hugo fra Cuba? ... Brug af Windows8, WTF !!!
Nå ja, jeg bliver fortrolig med dette operativsystem, og hvis jeg skal være ærlig, er det eneste, jeg har fundet nyttigt, kopiadministratoren, ellers finder jeg det personligt smertefuldt, især dets hybridgrænseflade og metroapplikationerne. Jeg kan godt lide det mindre end Vista og 7 (omend lidt mere effektivt end disse), som jeg heller ikke kunne lide. Det eneste, jeg bruger det til, er at spille NFS13 og Skyrim, men dette operativsystem tager så meget plads, at jeg var nødt til at slette min Linux-partition [snif].
For din ro i sindet vil jeg dog fortælle dig, at jeg i forgårs downloadede Arch ISO til januar, og jeg planlægger at give den en lille test i sin x86-64 version, så snart jeg får repoen (vil du har det?). Nu da jeg som standard bruger signerede pakker, giver det mig mere selvtillid til at dykke ind.
Og min far fortalte mig også, at han ville sende mig en Sony Xperia, som jeg vil drage fordel af for at lære noget programmering til Android, hvilket var et afventende ønske. Så rolig, jeg er endnu ikke gået til den mørke side af styrken, buahahahaha 😉
mand test
Sure.
Wenas! ..
Vi kunne lave den samme .. ..men biblioteket sendes som en parameter ..
if [ -d $1 ];
then
echo "Sí, sí existe."
else
echo "No, no existe"
fi
Og vi kalder det som:
./test.sh / opt /
Hilsen..
IF er ikke en cyklus xD
Det passer mig som en handske til et script, jeg laver. Er det gyldigt at bruge jokertegn? For eksempel for at finde ud af, om der er nogen .mp4s, skal du køre noget på dem.
hvis [-f * .mp4];
...
Ja, det er helt gyldigt ..
Selv gennem parametre .. "* .mp4"
Fx
if [ -f $1 ];
then
rm -r $1
else
ls
fi
Hvis du kalder det: ./test.sh * .mp4
Hvis den finder .mp4-filer, slettes den .. .. den viser ikke filerne i den mappe ..
Tak for feedback og tip! 🙂
Du gik glip af f xD
rm -rf $ 1
Dette er mere spændende!
Vidunderligt !!!, Hver dag jeg bliver mere forelsket i Linux, er Windows blevet henvist til et mørkt hjørne af min harddisk, som er ved at blive slettet for at vige for Linuxs lys.
Fremragende! .. .. Tag derefter det næste skridt .. og få det ud ..
6 måneder siden ca. Jeg har kun GNU / Linux på alle mine maskiner, og jeg har ikke brug for mere .. ..ikke W $ .. eller Vin .. ..og jeg er mere end glad sådan .. 😉
Og jeg inficerer mine omgivelser .. da alle ser mig med min Arch, hurtig, effektiv og glad .. ..og de beder mig om at installere Linux .. ..yeah! .. 😀
Du kan også kontrollere dem for forskellige udvidelser, du kan bruge noget lignende
#! / Bin / bash
Directory = $ HOME / Downloads
hvis [$ Directory]; derefter
ekko "Her er en liste over filtyper:"
ekko "mp1, mp2, mp3, mp4, wav, flac, flaad, aud, midi"
ls {* .mp ?, *. wav, *. fla, *. aud * .midi}
fi
ved hjælp af {} kan du angive flere udvidelser i dette tilfælde, brugen af "?" , er et jokertegn, som giver dig mulighed for at tage "Enhver karakter".
Jeg håber, det hjælper dig
Jeg anbefaler kommandoen find [directory] [search_pattern] –exec [command] {} \
Det virker ikke, jeg lagde disse filer i biblioteket:
AB20160420.TXT
AB20160421.TXT
AB20160422.TXT
AB20160423.TXT
AB20160424.TXT
AB20160425.TXT
search.sh
#! / Bin / bash
PATH = / tmp / TEST
cd $ ROUTE
ls -la | awk '{print »« $ 9}'
hvis [[-f AB.TXT]]; derefter
ekko »Indtast IF, hvis der er nogen AB.TXT »
fi
hvis [-f AB20160422.TXT]; derefter
ekko "input til en bestemt AB-fil"
fi
da jeg satte [-f AB.TXT] giver fejl
da jeg satte [[-f AB.TXT]] giver ikke en fejl, men kan ikke finde filen
det fungerer kun, når jeg lægger en bestemt fil, for eksempel:
hvis [-f AB20160422.TXT]; derefter
Jeg kan ikke få det til at arbejde med jokertegn * eller?
#! / usr / bin / env bash
#.kodning = utf-8.
KONTSTANTER
EXIT_OK = 0
EXIT_BAD = 66
BOLD = »\ 033 [1m»
NC = »\ 033 [0m»
RØD = »\ 033 [31m»
hvis [! "$ 1"];
derefter
ekko "mangler en parameter"
afslut $ EXIT_BAD
fi
cd "$ 1"
filer = »ls -h1 $ 1»
til fil i $ ($ filer); gør
ekko -e "du kan gøre alt med $ BOLD $ fil $ nc her"
færdig
afslut $ EXIT_OK
@KZ, fortæl mere om dette: "og det er fordi jeg går ind i Pythons vidunderlige verden"!
HAHAHAHA nah ... lidt efter lidt 🙂
Jeg er stadig bare en nybegynder til Python, jeg har næppe tid til at afsætte timer og timer til det, så jeg er langsom ja, langsom men sikker i min læring
Mange tak 😀 lige i går tænkte jeg på, hvordan man gør det.
dette med ncurses er fantastisk 🙂
med 1 ord ... UDMÆRKET!
I lang tid perfektionerede jeg et script til at downloade fra Internettet, men jeg havde problemet, at det downloadede de filer, det anmodede om 1 og igen uden at være i stand til at kontrollere eksistensen 1ro.
Meget god tuto.
Fantastisk bidrag, her fra Chile er værdsat.
Hver dag overrasker mere LINUX mig behageligt,
Længe leve fri software MIERDAAAA.
tjene til
kontrollere, om en fil er fra et bibliotek
Hvis jeg vil kontrollere eksistensen af en fil i en sti «/ tmp / receivers», skal du udføre en kommando, hvordan ville det være?
Jeg vil være meget taknemmelig
hilsen
Kære, og for at afgøre, om filen er fuldt udfyldt ???. Jeg spørger dette, for når du udfylder filen til en transmission, kan det tage det selv med halvdelen af dataene.
Hilsner og tak for dit svar.
Nå, jeg synes, du også skal tilføje et eksempel, såsom "Kontroller, at der ikke er" en "fil" eller "mappe" som for eksempel
for at kontrollere, at den IKKE findes, brug f.eks. en variabel->
Et bibliotek
#! / Bin / bash
Directory = »$ HOME / Test Directory»
Fil = »$ HOME / Testfil»
hvis [! -d "$ Directory"]; derefter
ekko "Der er ingen $ Directory"
ekko "Oprettelse ->" $ Directory "
mkdir "$ Directory"
andet
ekko "Directory" $ Directory "findes allerede
fi
hvis [! -d "$ File"]; derefter
ekko "Fil $ findes ikke"
ekko "Oprettelse ->" $ File "
tryk på "$ File"
andet
ekko "File" $ File "findes allerede
fi
når du gør mkdir, tjek senere, om terminalen kunne oprette det, fordi det kan bryde kuglerne, hvis det er en mappe som root eller system hhah
Hilsen KZKG ^ Gaara en forespørgsel, som jeg ville gøre for at bruge krølle. Jeg vil gerne vide, hvordan jeg gør det fra konsollen til at pinge en url for at se, om den f.eks. Er tilgængelig http://portal.com/directorio/archivo1.php Hvor fil1 gemmer besøgets IP'er, er det til overvågning af et team, som jeg har brug for at lave den pin hver halve time, så jeg er opmærksom på den offentlige IP, da den ændrer sig fra tid til anden, og jeg kan ikke oprette forbindelse med ssh.
Hilsner tak på forhånd Gud velsigne dig.
Hej hvordan går det
Først skal du sige, at IP-variablen (for eksempel) er indholdet af den fil, for dette skal du:
1. Download filen
2. Se dets indhold og få IP derfra
3. At IP er variablen
For eksempel:
Her downloader vi filen - »wget http://portal.com/directorio/archivo1.php -o fil.html
Derefter tildeler vi en variabel dens indhold: - »: $ {IP: =` cat file.html`}
.. forudsat at indholdet af den fil kun har IP, hvis ikke, skal du arbejde med grep, awk eller head.
Når du allerede har IP som en variabel, er resten den enkleste ting i verden 🙂
Hvis du vil, så skriv til mig på e-mail (kzkggaara[at]desdelinux[dot]net) Jeg hjælper dig gerne
Mange tak kzkggaara meget taknemmelig.
Hej, jeg forstår ikke meget om computing, og jeg ved ikke, om denne post er relateret til det problem, jeg har.
Jeg kommenterer, hvis du læser mig, selvom indlægget er fra for et år siden:
Det viser sig, at jeg oprettede en mappe på mit skrivebord til at gemme nogle videoer. Nå, jeg slettede disse videoer, fordi jeg ikke længere havde brug for dem, og nu fortæller denne mappe mig, at den ikke findes (selvom den er synlig på mit skrivebord).
- Det er det første problem, jeg har:
Jeg kan ikke slette mappen.
- Andet problem, og jeg synes vigtigere:
I et forsøg på at slette mappen lagde jeg en FOTOS-mappe. Nu når jeg åbner mappen, der "ikke findes", er den tom, og FOTO'erne er ikke der.
Hvordan kan jeg gendanne fotos? Jeg har givet muligheden inde i mappen "Vis skjulte dokumenter", men mappen FOTOS vises ikke.
Jeg håber, du kan vide, hvordan det løses.
Tak.
Der er to brugere, der er de vigtigste: root og din_bruger (fx natalia). De har begge personlige mapper. din_bruger i / hjem og rod i / (rodmappe). Ved at højreklikke på mappen, se hvem den tilhører. Hvis det er rod med din filhåndtering ved hjælp af sudo eller gksu eller kdesu afhængigt af det miljø, du bruger, skal du gå til rodmappen -> rod -> Desktop, og du vil sandsynligvis finde billederne, og du kan slette mappen. Nogle distroer, når du ikke er ejer af filen eller biblioteket, og du ikke har adgangstilladelser, fortæller dig, at kataloget / filen ikke findes. Hvis du er ejer, og du ikke er root, skal du gøre det samme med filhåndteringen med sudo osv. Og gå til rodmappen -> / home -> personal_folder -> Desktop og se om fotos er der, og om du kan slette mappen.
Hvis dette ikke virker, bliver du nødt til at se andre muligheder fra terminalen (konsol).
Hej, hvordan har du det? Jeg laver et job i bash, og jeg vil gerne vide, hvordan jeg kan kontrollere, om der er et bibliotek indtastet fra tastaturet, for eksempel
#! / Bin / bash
læse rute
#Enter ~ / Desktop
#Så prøver jeg at navigere i den mappe
cd $ sti
# Jeg får følgende bash-besked: cd: ~ / Desktop: Filen eller biblioteket findes ikke
Mit spørgsmål er, hvad kan jeg gøre, så jeg indtaster det fra tastaturet og tager det som en biblioteksti?
Og hvordan kan jeg vide, om der findes en gruppe,
godt Jeg har et problem i min canaima, når jeg trykker på knappen cunaguaro, der står, at der ikke er nogen fil eller mappe, som det ville gøre for at løse dette problem, og resten åbner ikke cunaguaro tak, tak.
Hvordan laver du if i BASH, hvis filnavnet har mellemrum?
For eksempel:
April data.xlsx
At spørge, om filen findes
Carlos, sådan her:
hvis [["$ variable" == Data \ måned \ af \ April.xlsx]]; derefter ekko 'match'; fi
Du kan også:
hvis [["$ variable" == 'Data for april måned.xlsx']]; derefter ekko 'match'; fi
En anden mulighed:
[["$ Variable" == 'Data for April.xlsx']] && echo 'matches' || ekko 'matcher ikke'
I nogle mørke områder på internettet anbefaler de at bruge [[]] i stedet for [], og hvis du skal sammenligne tal, så: ((variabel> = 3)) && echo 'variabel er større end eller lig med 3' | | ekko 'variabel er mindre end 3'
Derfor for tal:
hvis ((tal! = 4)); derefter ekko "$ {number} er ikke 4"; ellers ekko "$ {number} er 4"; fi
Hvordan kan du oprette en kode til validering, hvis biblioteket har en bestemt tekst, for at kunne redigere den.
eksempel:
hvis (tekst1)
gøre ingenting
andet
skift tekst1 til tekst2
et spørgsmål, hvordan ville det være at kontrollere hvert 15. sekund, hvis filen findes eller ikke, tak.
Hej,
dette:
hvis [-w / home / Komun / Logs / ti]; derefter
Find ud af, om filen er skrivbar. Men det er baseret på brugertilladelser. Kan det gøres for at finde ud af, om gruppen eller de andre har tilladelser?