Dev Perfects
40 subscribers
9.23K photos
1.26K videos
468 files
13K links
بخوام خیلی خلاصه بگم
این کانال میاد مطالب کانالای خفن تو حوزه تکنولوژی و برنامه نویسی رو جمع میکنه

پست پین رو بخونید
https://t.iss.one/dev_perfects/455


ارتباط:
https://t.iss.one/HidenChat_Bot?start=936082426
Download Telegram
Forwarded from Woland's Linux Journal (Woland)
💠چگونه بیدار شویم؟💠


چرخه‌های خواب و بیداری شامل چندین مرحله می‌باشند که هر کدام نقش مهمی در سلامت و عملکرد بدن دارند. یکی از این مراحل، خواب REM است که مخفف Rapid Eye Movement (حرکت سریع چشم) می‌باشد. در این مرحله، چشم‌ها زیر پلک‌ها به سرعت حرکت می‌کنند و مغز فعال است، به طوری که فرد اغلب رویا می‌بیند.

محاسبه چرخه‌های REM برای تعیین بهترین زمان بیدار شدن بسیار مهم است. یک چرخه کامل خواب حدود 90 دقیقه طول می‌کشد و شامل چندین مرحله از جمله خواب REM می‌باشد. برای اطمینان از بیدار شدن در انتهای یک چرخه خواب، که فرد تازه‌تر و آماده‌تر احساس می‌کند، باید زمان بیدار شدن را با توجه به چرخه‌های 90 دقیقه‌ای برنامه‌ریزی کرد.


برای محاسبه REM برنامه‌ها و سایت‌های بسیاری وجود داره. بش اسکریپت زیر خیلی ساده بهترین زمان بیدار شدن رو محاسبه می‌کنه. این اسکریپت در صورتی که بدون آرگومان اجرا بشه، زمان فعلی را به عنوان زمان خواب در نظر می‌گیره و در غیر این صورت، زمان خواب را به عنوان آرگومان اول دریافت می‌کنه.

نمونه:
$ ./REM.sh
$ ./REM.sh 11:30

خروجی:
Optimal wake-up times if you sleep at 21:47:
Best time to wake up after 1 cycle(s) is: 23:17
Best time to wake up after 2 cycle(s) is: 00:47
Best time to wake up after 3 cycle(s) is: 02:17
Best time to wake up after 4 cycle(s) is: 03:47
Best time to wake up after 5 cycle(s) is: 05:17
Best time to wake up after 6 cycle(s) is: 06:47
Best time to wake up after 7 cycle(s) is: 08:17


کد:


#!/usr/bin/env bash 

RemCalc()
{
local SleepTime=$1
local CycleDuration=90
local CyclesNum=7

echo "Optimal wake-up times if you sleep at $SleepTime:"

for ((i=1; i<=CyclesNum; i++)); do
WakeUpTime=$(date -d "$SleepTime $((i * CycleDuration)) minutes" +"%H:%M")
echo "Best time to wake up after $i cycle(s) is: $WakeUpTime"
done
}

if [[ -z "$1" ]]; then
CurrentTime=$(date +"%H:%M")
RemCalc "$CurrentTime"
else
RemCalc "$1"
fi


#آموزش #بش #bash
Forwarded from CleverDevs (Mammad)
یه چند روزیه شروع کردم تایمای بیکاری bash script یاد میگیرم (که بنظرم اگه لینوکسی هستید حتما یاد بگیرید بدردتون میخوره) میخوام چیزای جالبش رو هم گاها اینجا شیر کنم

یه چیز باحالی که دیدم عملگر های مقایسه‌ای تو بش بود

مثلا با عملگر های زیر میتونید مقایسه کنید متنی که دارید null هست یا نه

if [ -z "$str" ]; then
echo "It's null"
fi


if [ -n "$str" ]; then
echo "It isn't null"
fi


یا عملگر های مربوط به اعداد و فایل ها که تو تصاویر همشون هستن و یه مثال این پایین میزنم

مثلا اگه میخواید چک کنید یه عدد بزرگتر یا مساوی یه یه عدد دیگس میتونید از ge- استفاده کنید

if [[ 4 -ge 2 ]]; then
echo "It's greater than or equal to "
fi


*و اگه دقت کنید این عملگر ها حرف اول کلماتی هستن که نشون میدن مثل ge حروف اول great و equal هستش یا lt حروف اول less than هستش*

برای اینکه طولانی نشه دیگه برا بقیشون مثالی نمیزنم میتونید تو تصاویر پست بقیش رو ببینید

#bash
@CleverDevs - @CleverDevsGp
Forwarded from CleverDevs (Mammad)
یکی دیگه از بخشای جالب Bash حلقه هاشه . توی بش یه حلقه until هم داریم که خیلی شبیه به while هست با یه تفاوت کوچیک ، توی while حلقه تا زمانی که شرطمون درسته اجرا میشه و به محض اینکه شرطمون نقض بشه تموم میشه

مثلا تو کد زیر تا زمانی که متغیرمون از 5 کوچیکتر هست شرط درسته و حلقه اجرا میشه

i=1

while [[ $i -lt 5 ]]; do
echo "CleverDevs";
let i++
done



ولی unitl برعکسه تا وقتی شرط اشتباهه حلقه اجرا میشه و به محض اینکه شرط حلقه درست بشه استپ میشه

مثلا تو کد زیر تا زمانی که شرط حلقه اشتباهه حلقه اجرا میشه ولی به محض اینکه شرط درست میشه حلقه متوقف میشه

i=1 

until [[ $i -gt 5 ]]; do
echo "CleverDevs";
let i++
done



البته با معکوس کردن شرط while کار همون until رو میکنه ولی در کل حلقه جالبی بود

#bash
@CleverDevs - @CleverDevsGp
Forwarded from Woland's Linux Journal (Woland)
This media is not supported in your browser
VIEW IN TELEGRAM
💠آموزش ساخت بازی ماین‌سوییپ با بش💠

توی این مقاله ساخت نسخه‌ی ساده‌ای از بازی ماین‌سوییپ رو یاد خواهید گرفت.

این مطلب مباحث مهمی ازجمله کار با کدهای انسی، مدیریت وضعیت (state)، دنبال کردن پوزیشن کاربر در ترمینال، گرفتن ورودی از کاربر و استفاده از لوپ برای ساخت و ترسیم شکل‌ها در ترمینال رو پوشش می‌ده.

پ.ن: من فکر می‌کردم که این مطلب رو خیلی وقت پیش آپلود کردم، ولی آپلود نشده بود.
گیف‌های با کیفیت‌تری هم در سایت قرار گرفته.


👉🔗 Bash-Notes

#آموزش #bash #بش
Forwarded from Woland's Linux Journal (Woland)
درآمدی به ابزارهای یونیکس

این برنامه‌ی آموزشی با زبان بش نوشته شده و کار با شل و ابزارهای اون رو به شما یاد می‌ده.

👉🔗 Github

#آموزش #bash $بش
Forwarded from CleverDevs (Mammad)
مدتی بود به کلا از برنامه نویسی دور بودم و وقت نمیشد پستی بزارم گفتم برای شروع کار بیام و یکی از بخش های بدرد بخور bash script که قابلیت select هست و کار ساخت منو هایی که کاربر باید چیزی انتخاب کنه رو راحت تر میکنه رو یه معرفی ریزی بکنم

سینتکس خاصی هم نداره و راحت میشه استفاده کرد

#!/bin/bash

PS3="Select one of the options ... :"

select opt in CleverDevs Mammad CleverDevsGp;do
echo $opt;
break;
done


متغیر PS3 یه متغیره که اون سوالی که تو منو داریم رو باید تعریف کنید و خود منو رو هم تو خط های بعدی تعریف کنید

خروجی هم یه همچین چیزی میشه

1) CleverDevs
2) Mammad
3) CleverDevsGp
Select one of the options ... :


چیز ساده ای بود که میشد به هرروشی نوشت ولی اینکه خود بش یه همچین قابلیتی داشت باحاله
#bash
@CleverDevs - @CleverDevsGp
Forwarded from hosein seilany https://seilany.ir/
آموزش شل اسکریپت نویسی:
اسکریپتی برای بررسی روت بودن کاربر جاری:
testroot.sh
######################

#!/bin/bash

if [ "$(whoami)" != 'root' ]; then
echo "You have no permission to run $0 as non-root user."
exit 1;
fi
#################################

#bash testroot.sh
Forwarded from Woland's Linux Journal (Woland)
چطور یک بش کامپلیشن بنویسیم؟
به همین سادگی:

#!/usr/bin/env bash

_generate_go_completions() {
local idx=$1; shift
local words=( "$@" )
local current_word=${words[idx]}

local array=(
build
run
bug
build
clean
doc
env
fix
fmt
generate
get
install
list
mod
work
run
telemetry
test
tool
version
vet
)

for i in "${array[@]}"; do
if [[ $i == "$current_word"* ]]; then echo "$i"; fi
done
}

_complete_go_bash() {
mapfile -t raw < <(_generate_go_completions "$COMP_CWORD" "${COMP_WORDS[@]}")
COMPREPLY=( "${raw[@]}" )
}

if [ -n "${BASH_VERSION:-}" ]; then
complete -F _complete_go_bash go
fi


احتمالا کامپلیشن‌های بهتری هم برای گو وجود داره، اما همین برای من کافیه.
کد خواناست اگه مشکلی داشتین توی کامنت بپرسین.

#bash #بش
Forwarded from Woland's Linux Journal (Woland)
$@ در مقابل getopts در Bash تفاوت اصلی چیه؟


@$ = تمام آرگومان‌های اسکریپت رو به شکل فهرست برمی‌گردونه
getopts = ابزار قدرتمند برای پردازش flag ها و option های مختلفه


مثال با @$:

# script.sh arg1 arg2 arg3
for arg in "$@"; do
echo "Argument: $arg"
done


مثال با getopts:

while getopts "f:v" opt; do
case $opt in
f) filename="$OPTARG" ;;
v) verbose=true ;;
\?) echo "Invalid option" >&2 ;;
esac
done


اجرا:
script.sh -f myfile.txt -v

کی از کدوم استفاده کنیم؟

@$ مناسبه وقتی:
- آرگومان‌ها ساده و بدون flag هستند
- فقط می‌خوایم روی همه آرگومان‌ها iterate کنیم
- اسکریپت ساده است

getopts مناسبه وقتی:
- نیاز به option های پیچیده داریم (-f file, -v, --help)
- می‌خوایم validation و error handling داشته باشیم
- اسکریپت professional تر باشه
-
توجه:
getopts vs getopt
getopts (built-in bash):

فقط getopts پرتابله و همه جا کار می‌کنه، چون یک bash built-in هست اما getopt یک باینری مجزاست!

OPTS=$(getopt -o f:vh -l file:,verbose,help -n "$0" -- "$@")
if [ $? != 0 ]; then
echo "Try '$0 --help' for usage." >&2
exit 1
fi
eval set -- "$OPTS"

while true; do
case "$1" in
-f|--file)
filename="$2"
shift 2 ;;
-v|--verbose)
verbose=true
shift ;;
-h|--help)
echo "Usage: $0 [-f FILE] [-v] [-h]"
echo " -f, --file FILE specify a filename"
echo " -v, --verbose enable verbose mode"
echo " -h, --help show this help message"
exit 0 ;;
--)
shift
break ;;
*)
echo "Unknown option: $1"
exit 1 ;;
esac
done

if [[ $# -gt 0 ]]; then
echo "Filename = $filename"
echo "Verbose = $verbose"
fi


اجرا:

./script.sh -f foo.txt -v
./script.sh --file foo.txt --verbose
./script.sh -h

بهترین استفاده از @$ وقتیه که برای فراخوانی یک تابع درون اسکریپت ازش استفاده بشه.

hello_world() { echo "Hello World"; }
hello_user() { echo "Hello, $USER"; }
hello_time() { echo "The time is $(date +%H:%M)"; }

hello_"$@"


اجرا:

./script.sh world
# → Hello World

./script.sh user
# → Hello, woland

./script.sh time
# → The time is 14:37

#بش #bash #آموزش
Forwarded from SoniaCircuit (SoniaCircuit Moderator)
توضیح Shell و Terminal

سلام بچه ها

تو این ویدیو میخوایم راجب شل و ترمینال
صحبت کنیم و راجب کاربردهاشون بگیم و با هم چند تا کامند کاربردی رو امتحان میکنیم برای اینکه توی ترمینال فایل بسازیم و …

این ویدیو پارت اول مجموعه شل و بش اسکریپتینگ هستش پس منتظر پارت های بعدی باشید 🔥

امیدوارم از این قسمت خوشتون اومده باشه 😉
لایک و ساب اسکرایب هم فراموششششششش نشه ❤️😁

#linux #shell #bash #terminal
Please open Telegram to view this post
VIEW IN TELEGRAM