Ман чизе аз гузошта нашудааст Bash, ва ин аст, ки ҳангоми ворид шудан ба ҷаҳони аҷиби Python ман каме дар бораи ин дӯсти дигаре, ки ба ман ин қадар кӯмак кардааст, фаромӯш кардаам 🙂
Ин аст чизе барои ҳавасмандони Баш, чунон ки дар сарлавҳа гуфта мешавад ... Ман ба шумо нишон медиҳам, ки чӣ гуна файл ё ҷузвдон дар система вуҷуд дорад ё не, танҳо бо истифода аз: if
Мо файли .sh эҷод карда, иҷозат медиҳем, ки барои ин танҳо фармони зеринро дар терминал гузорем:
touch test.sh && chmod + x test.sh
Ин чӣ кор кард, эҷоди файл (touch.sh санҷед) ва инчунин ба шумо иҷозатҳоро иҷозат диҳед (chmod + x test.sh)
Пас биёед дар он чизҳои зеринро нависем:
if [ -d /opt/ ];
then
echo "Sí, sí existe."
else
echo "No, no existe"
fi
Ин чӣ кор мекунад?
Simple оддӣ
Дар сатри аввал - » агар [-d / opt /];
Дар ин ҷо мо мепурсем, ки оё / opt / директория вуҷуд дорад? Бале директория / ҷузвдон, зеро -d маънои директория ё ҷузвдонро дорад.
Пас, агар он вуҷуд дошта бошад, мо онро дар терминали «Бале, он вуҷуд дорад.»(Ин сатри 2 ва 3 аст)
Дар акси ҳол ва / opt / вуҷуд надорад, пас мо чоп мекунем «Не он вуҷуд надорад»(Сатрҳои 4 ва 5)
Пас дар сатри охирин (рақами 6) мо ifро бастем ва тамом.
Санҷишро санҷед, он ба шумо нишон медиҳад, ки / 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-ро дӯст медоранд, хеле муфид ва ҷолиб хоҳад буд
Бо тавзеҳот ҷавоб диҳед
42 шарҳ, аз они шумо
Усули дигари иҷрои ин кор бидуни ... агар ...
test -f /etc/hosts && elcomando
Ё инчунин
test ! -f /etc/hosts && echo "no se encontró el archivo"
Ва ғайра
Рост 😀
… О_О… Шумо Уго ҳастед, Уго аз Куба? ... Бо истифода аз Windows8, WTF !!!
Хуб, ҳа, ман бо ин OS ошно мешавам ва агар ошкоро бояд гуфт, танҳо чизе, ки ба ман муфид ёфтааст, ин менеҷери нусхабардорӣ аст, вагарна ман шахсан онро зараррасон мебинам, алахусус интерфейси гибридии он ва замимаҳои метро. Ин ба ман камтар аз Vista ва 7 маъқул аст (гарчанде ки каме самарабахштар аз инҳо), ки ин ҳам ба ман писанд набуд. Ягона чизе, ки ман барои он истифода мекунам, ин бозӣ кардани NFS13 ва Skyrim аст, аммо ин OS он қадар ҷойро ишғол мекунад, ки ман маҷбур шудам ҳиҷобҳои Linux [snif] -ро нест кунам.
Аммо, барои оромии рӯҳии шумо, ман ба шумо мегӯям, ки як рӯз пеш ман Arch ISO-ро барои моҳи январ зеркашӣ кардам ва ман ният дорам, ки баробари ба даст овардани репо ба он каме озмоиш диҳам (нусхаи x86-64) (шумо онро доред?). Ҳоло, ки ман дидам, ки он бастаҳои имзошударо бо нобаёнӣ истифода мебарад, ин ба ман эътимоди бештар ба ғаввосӣ медиҳад.
Ва падари ман инчунин ба ман гуфт, ки ба ман Sony Xperia фиристад, ки ман мехоҳам аз он истифода бурда, баъзе барномасозиро барои Android омӯзам, ки ин орзуи интизор буд. Пас ором шавед, ман то ҳол ба тарафи торикии нерӯ нарафтаам, буаҳахахаха 😉
озмоиши мард
Дуруст аст.
Вена! ..
Мо метавонистем ҳамон якро созем .. ..вале директория ҳамчун параметр гузаронида мешавад ..
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 .. .. на шароб .. ..ва ман аз ин зиёдтар хушҳолам .. 😉
Ва ман атрофамро сироят мекунам .. зеро ҳама маро бо Arch, зуд, муассир ва хушбахт мебинанд .. ..ва аз ман хоҳиш мекунанд, ки Linux насб кунам .. ..ааа! .. 😀
Шумо инчунин метавонед онҳоро барои васеъшавии гуногун тафтиш кунед, шумо метавонед чизе монанди онро истифода баред
#! / bin / bash
Директория = $ HOME / Боргириҳо
агар [$ Directory]; пас
echo "Ин аст рӯйхати намудҳои файл:"
echo "mp1, mp2, mp3, mp4, wav, flac, flaad, aud, midi"
ls {* .mp ?, *. wav, *. fla, *. aud * .midi}
fi
истифодаи {} ба шумо имкон медиҳад, ки бо истифода аз "?" дар ин ҳолат якчанд васеъкуниҳоро муайян кунед. , як рамзи ваҳшӣ аст, ки ба шумо имкон медиҳад "Ҳар гуна аломат" -ро гиред.
Умедворам, ки ин ба шумо кӯмак мекунад
Ман фармони find [директория] [search_pattern] –exec [command] {} \ -ро тавсия медиҳам
Ин кор намекунад, ман ин файлҳоро ба директория гузоштам:
AB20160420.TXT
AB20160421.TXT
AB20160422.TXT
AB20160423.TXT
AB20160424.TXT
AB20160425.TXT
ҷустуҷӯ.sh
#! / bin / bash
PATH = / tmp / TEST
CD $ ROUTE
лс -ла | awk '{print »« $ 9}'
агар [[-f AB.ХАТ]]; пас
echo »Агар IF мавҷуд бошад, IF ворид кунед.ХАТ "
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
BOLD = »\ 033 [1м»
NC = »\ 033 [0м»
СУРХ = »\ 033 [31м»
агар [! "$ 1"];
баъд
echo "параметр намерасад"
баромадан $ EXIT_BAD
fi
CD "$ 1"
файлҳо = »ls -h1 $ 1»
барои файл дар $ ($ файлҳо); кардан
echo -e "шумо метавонед бо $ BOLD $ file $ nc дар ин ҷо ҳама чизро иҷро кунед"
иҷро
баромадан $ EXIT_OK
@KZ, дар ин бора маълумоти бештар диҳед: «ва ин аст, ки ман ба ҷаҳони аҷиби Python ворид мешавам»!
ХАХАХАХА нах ... охиста-охиста 🙂
Ман то ҳол танҳо як навини Python ҳастам, ман душвор аст, ки соат ва соатро ба он бахшам, аз ин рӯ суст, бале, суст, аммо дар омӯзиши худ итминон дорам 😀
Ташаккури зиёд 😀 дирӯз ман фикр мекардам, ки чӣ тавр ин корро кардан лозим аст.
ин бо ҳамшираҳо бузург аст 🙂
дар 1 калима ... ОЛИЛ!
Муддати дароз ман як скриптро барои зеркашӣ аз Интернет такмил медодам, аммо ман бо мушкилоти зеркашии файлҳое, ки 1 ва боз дархост кардам, бидуни тасдиқи мавҷудияти 1ro дучор шудам.
Туто хеле хуб.
Саҳми бебаҳо, дар ин ҷо аз Чили қадр карда мешавад.
Ҳар рӯз бештар LINUX маро ба ҳайрат меорад,
Зинда бод нармафзори ройгон MIERDAAAA.
хизмат кардан
санҷед, ки оё файл аз директория аст
Агар ман мехоҳам мавҷудияти ягон файлро дар роҳи «/ tmp / receivers» тафтиш кунам, ягон фармонро иҷро кунам, чӣ гуна мебуд?
Ман хеле миннатдор хоҳам буд
Бо тавзеҳот ҷавоб диҳед
Азиз, ва муайян кардани он, ки оё файл пурра пур карда шудааст ???. Ман инро мепурсам, зеро вақте ки шумо файлро барои интиқол пур мекунед, он ҳатто бо нисфи маълумот онро гирифта метавонад.
Салом ва ташаккур барои посух.
Хуб, ман фикр мекунам, ки шумо низ бояд мисоле илова кунед, ба монанди "Тафтиш кунед, ки" файл "ё" директория "вуҷуд надорад, масалан
барои санҷидани он, ки он НЕСТ, масалан тағирёбанда-> -ро истифода баред
Директория
#! / bin / bash
Директория = »$ HOME / Директори тестӣ»
Файл = »$ HOME / Санҷиши файл»
агар [! -d "Директория"]; пас
echo "Директория нест $"
echo "Createing ->" $ Directory "
mkdir "$ Directory"
боз
echo "Директория" $ Directory "аллакай мавҷуд аст
fi
агар [! -d "$ File"]; пас
echo "Файл $ вуҷуд надорад"
echo "Createing ->" $ File "
"$ File" -ро ламс кунед
боз
echo "File" $ File "аллакай вуҷуд дорад
fi
вақте ки шумо mkdir -ро месанҷед, пас оё терминал онро сохта метавонад, зеро он метавонад тӯбҳоро шиканад, агар он папка ҳамчун реша ё система бошад 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 file.html
Сипас, мундариҷаи онро ба тағирёбанда таъин мекунем: - »: $ {IP: =` cat file.html`}
.. агар фарз кунем, ки мундариҷаи он файл танҳо IP дорад, агар не, шумо бояд бо grep, awk ё head кор кунед.
Пас аз он ки шумо IP ҳамчун тағирёбанда доред, боқимонда чизи оддитарин дар ҷаҳон аст 🙂
Агар шумо хоҳед, ки маро ба почтаи электронӣ нависед (kzkggaara [at] desdelinux [dot] net), ки ман бо хурсандӣ ба шумо кӯмак мекунам
Ташаккури зиёд кзкггаара хеле миннатдорам.
Салом, ман дар бораи компютер бисёр чизҳоро намефаҳмам ва намедонам, ки ин навишта ба мушкили ман вобаста аст ё не.
Ман дар ҳолате, ки шумо маро хондаед, шарҳ медиҳам, гарчанде ки навиштаҷот як сол пеш аст:
Маълум шуд, ки ман дар мизи кории худ папкае сохтаам, то баъзе видеоҳоро нигоҳ дорам. Хуб, ман он видеоҳоро нест кардам, зеро ман дигар ба онҳо ниёз надоштам ва ҳоло ин папка ба ман мегӯяд, ки он вуҷуд надорад (ҳарчанд он дар мизи кории ман намоён аст).
- Ин аввалин мушкилоти ман аст:
Ман ҷузвдонро нест карда наметавонам.
- Проблемаи дуюм ва ман муҳимтар мешуморам:
Бо мақсади нест кардани ҷузвдон, ман папкаи АКСҳоро гузоштам. Ҳоло вақте ки папкаро мекушоям, ки "вуҷуд надорад" холӣ аст ва АКСҲО дар он ҷо нестанд.
Чӣ тавр ман аксҳоро барқарор карда метавонам? Ман параметрро дар дохили ҷузвдони "Нишон додани ҳуҷҷатҳои пинҳоншуда" додам, аммо ҷузвдони АКСҳо пайдо намешавад.
Умедворам, ки шумо медонед, ки чӣ гуна ҳал шудааст.
Ташаккур.
Ду корбаре ҳастанд, ки асосӣ ҳастанд: root ва your_user (масалан, natalia). Ҳардуи онҳо ҷузвдонҳои шахсӣ доранд. your_user in / home ва root in / (директорияи root). Бо зеркунии клик ба ҷузвдон бубинед, ки он ба кӣ тааллуқ дорад. Агар он бо мудири файлатон бо истифодаи sudo ё gksu ё kdesu реша бошад, вобаста аз муҳите, ки шумо истифода мебаред, ба каталоги root -> root -> Desktop гузаред ва шумо эҳтимолан аксҳоро пайдо мекунед ва шумо метавонед ҷузвдонро нест кунед. Баъзе паҳнкуниҳо, вақте ки шумо соҳиби файл ё директория нестед ва иҷозати дастрасӣ надоред, ба шумо директор / файл мавҷуд нестанд. Агар шумо соҳиби он бошед ва шумо реша надошта бошед, инро бо мудири файл бо sudo ва ғайра анҷом диҳед ва ба каталоги root -> / home -> personal_folder -> Desktop гузаред ва бубинед, ки оё аксҳо дар он ҷо ҳастанд ва оё шумо метавонед онҳоро нест кунед ҷузвдон.
Агар ин кор накунад, шумо бояд имконоти дигарро аз терминал (консол) бубинед.
Салом шумо чӣ хелед?
#! / bin / bash
хатсайрро хонед
# Ворид ~ / Мизи
# Пас ман кӯшиш мекунам, ки ин директорияро паймоиш кунам
CD $ роҳ
# Ман паёми зеринро мегирам: cd: ~ / Desktop: Файл ё директория вуҷуд надорад
Саволи ман ин аст, ки ман чӣ кор карда метавонам, то онро аз клавиатура ворид намуда, ҳамчун роҳи директория қабул кунам?
Ва ман аз куҷо медонам, ки гурӯҳ вуҷуд дорад,
хуб Ҳангоми пахш кардани тугмаи кунагуаро, ман дар каноима мушкилот дорам, дар он гуфта мешавад, ки ягон файл ё директорияе нест, ки он барои ҳалли ин мушкил кор кунад ва боқимонда кунагуаро намекушояд, ташаккур.
Агар номи файл фосила дошта бошад, if if дар BASH -ро чӣ гуна иҷро мекунед?
Масалан:
Data.xlsx апрел
Барои пурсидан, ки оё ин файл вуҷуд дорад
Карлос, ба ин монанд:
агар [["$ variable" == Маълумот \ моҳ \ аз \ April.xlsx]]; пас ҳамовоз 'мувофиқат' кунед; fi
Шумо инчунин метавонед:
агар [["$ variable" == 'Маълумот барои моҳи апрел.xlsx']]; пас ҳамовоз 'мувофиқат' кунед; fi
Варианти дигар:
[["$ Variable" == 'Маълумот барои April.xlsx']] && echo 'match' || ҳамовоз 'мувофиқат намекунад'
Дар баъзе минтақаҳои торики интернет онҳо ба ҷои [] истифодаи [[]] -ро тавсия медиҳанд ва агар шумо рақамҳоро муқоиса карданӣ бошед, пас ((тағйирёбанда> = 3)) && echo 'тағирёбанда аз 3 ё | | echo 'тағирёбанда камтар аз 3' аст
Аз ин рӯ, барои рақамҳо:
агар ((рақам! = 4)); пас ҳамовозии "$ {number} 4 нест"; else echo "$ {number} is 4"; fi
чӣ гуна шумо метавонед рамзро барои тасдиқ кардан тартиб диҳед, агар директория матни махсус дошта бошад, то онро таҳрир карда тавонед.
мисол:
агар (матни1)
коре накунед
боз
text1 ба text2 иваз кунед
саволе, ки чӣ гуна ҳар як 15 сонияро тафтиш кардан мумкин мебуд, агар файл вуҷуд дошта бошад ё не, ташаккур.
Салом,
ин:
агар [-w / home / Komun / Logs / ti]; пас
Бифаҳмед, ки оё файл навиштанист. Аммо он бар иҷозатҳои корбар асос ёфтааст. Оё ин корро кардан мумкин аст, ки оё гурӯҳ ё дигарон иҷозат доранд?