ورود

View Full Version : گفتگو: Shell Programing



darklove
سه شنبه 07 دی 1389, 12:11 عصر
با سلام.
کسی از دوستان آیا با یان زبان کار کرده.
میخواهم اگر امکان دارد با هم شروع با آموزش این زبان کنیم.
البته بنده فقط از این زبان برای نوشتن Bash File جهت کارهای شبکه استفاده کرده ام.

armintirand
چهارشنبه 08 دی 1389, 12:04 عصر
اره خیلیا کار کردن .دوست عزیز هر کس که با لینوکس کار میکنه باید آشنایی با این چیزا داشته باشه.خوب با شل تو شبکه چیکارا کردی؟
من درسته حرفه‌ ای نیستم ولی پایه این کار هستم که کمکت کنم.
اگه فهرست بندی میکنی شروع کن و اگه میخوای من فهرست بندی کنم.
راستی اگه از کتاب خاصی به عنوان مرجع انگلیسی استفاده میکنی اسمشو بگو تا هماهنگ جلو بریم.

armintirand
شنبه 11 دی 1389, 14:31 عصر
خوب اگه تا چند روز دیگه دوست عزیز مون همت نکردن من خودم شروع میکنم ولی دوستان باید ایرادات و پیشنهادات بدهند تا چیزای جالبی اینجا قرار بگیره.

blue_lotus
شنبه 11 دی 1389, 20:11 عصر
قبلا یک کارایی در ضمینه شل اسکریپت نویسی به زبان فارسی انجام شده.

کار بچه های لاگ خوزستان: http://khuzestanlug.ir/forum/viewtopic.php?f=13&t=493

یک pdf هم هست که برای مقدمات خیلی مفیده ضمیمه‌اش کردم. نویسندش : محمد استاد هاشمی

شما اگر میخواید میتونید کارای لاگ خوزستان منظم تر کنید یا اینکه از این منابع استفاده کنید و ادامه‌اش رو پیشرفته‌تر کار کنین.

baranebahar101
یک شنبه 12 دی 1389, 19:28 عصر
منم هستم.یکم وقتم کمه.
کسایی که کار کردن یه اطلاعات کلی بدن بعد برید سراغ فهرست بندی

darklove
دوشنبه 13 دی 1389, 11:21 صبح
سلام به همگی.
راستیتش چند باری سر زدم دیدم کسی استقبال نکرده دلسرد شدم، اما امروز شانسی سر زدم و دیدم که استقبال شده و بچه ها شروع کرده اند.
بنده از رو اطلاعات ناقصی که دارم و همچنین تجربه شروع به نوشتن میکنم و هر جا که فکر کردید مشکلی هست و ناقص همراهی کنید.
به نام اهورا مزدا


برنامه نویسی با پوسته لینوکس ( Shell Programing )

معرفی Shell : Shell یک پردازشگر است که فرامین ورودی در خط فرمان را اجرا میکنید.

چرا از Shell Programing استفاده میکنیم : برای شما اتفاق افتاده که در طول روز و هفته بارها چنیدن دستور را اجرا کنید، این کار وقت بیشتری از شما میگیرد و احتمال بروز خطا نیز وجود دارد، اما شما میتوانید این دستورات را در یک فایل متنی ذخیره نموده و با هر بار اجرای فایل، دستورات مورد نظر اجرا گردند.

به این برنامه نویسی، برنامه نویسی شل ( Shell Programing ) و به فایل که حاوی دستورات میباشد، اسکریپت شل

( Shell Script ) می گویند.



انواع پوسته :

Sh ( Bourne – Again Shell ) : نسخه ابتدایی Shell در نسخه های ابتدایی Unix.

Ksh, Pdksh : پوسته پیش فرض نسخه های تجاری هستند.

Csh, Tcsh, Zsh : سومین پوسته ی پرطرفدار پس از Bash و Ksh.

Bash : پوسته ای که یکی از ویژگی های آن متن باز بودن و شباهت بسیار به Ksh.



ایجاد فایل اسکریپت Shell :

برای ایجاد کردن فایل از یک ویرایشگر نظیر vi, nano, gEdit استفاده میکنیم.




Nano hello.sh


یا




Nano hello







#!/bin/bash


# Hello Bash


Echo “Hello”



توضیحی در مورد فایل :

در فایلهای اسکریپت توضیحات با علامت # نوشته می شوند، اما ممکن است تعجن کنید پس ما چرا از #! استفاده کرده ایم و آن هم در ابتدای فایل ایکریپت آمده است.

خط اول برنامه با # شروع شده که به شل میگوید که این سطر، یک سطر توضیحی است و علامت ! که بعد از آن است میگوید که بعد از آن را اجرا کند.

یعنی بعد از علامت ! شما باید محل پوسته ی خود یعنی Bash را بدهید تا سیستم بداند برای اجرای بقیه دستورات از چه نوع پوسته ی استفاده کند.

برای دانستن Shell اجرایی در سیستم از این دستور استفاده کنید.




Cat /etc/Shells



بعد از نوستن فایل اسکریپت باید قابلیت اجرا شدن را به فایل بدهیم که با دستور زیر این کار را انجام میدهیم.




Chmod u+x hello.sh



یا




Chmod u+x hello



و برای اجرا در همان محل که فایل را ذخیره نموده ایم رفته و دستور زیر را وارد میکنیم.




./ hello.sh



یا




./hello

armintirand
دوشنبه 13 دی 1389, 18:58 عصر
ممنون از همت دوستان منم به زودی شروع میکنم فقط فهرست بندی نکردید. اگه تونستم تا فردا فهرستبندی میکنم.

darklove
سه شنبه 14 دی 1389, 10:04 صبح
Variables متغیر ها
قسمت اول :
متغیر ها برای نگهداری اطلاعات در خودشان یا درون mem استفاده می‌شوند . و خیلی راحت می‌توان با استفاده از یک دستور به انها دسترسی پیدا کرد ، مثلاً :


MY_NAME=mahdi
echo $MY_NAME


در سیستم عامل لینوکس متغیر ها به دودسته عمومی و محلی تقسیم می‌شوند :



global Variables
Local Variables


متغیر های عمومی روی خود پوسته تأثیر می گذارند (البته قابل تغییر نیز هستند) . و محل نگهداری این اطلاعات برای اجرا فایل‌های کانفیگ پوسته می‌باشد . فایل‌هایی مثل :



bashrc
bash_history
profile
bash_logout


البته فایل bashrc و profile به غیر ازشاخه etc/ درون پوشه خانگی کاربران نیز هست .
برای دیدن لیستی از متغیر هایی که الان روی پوسته شما فعال است می‌توانید از دستورات زیر استفاده کنید :



printenv
env


برای دیدن لیست تمام متغیر های روی سیستم میتوانید از دستور set استفاده کنید .
از جمله این متغیر ها می‌توان به



$HOME پوشه خانگی کاربر را نشان می‌دهد
$PS1 که متغییر خط فرمان شل است .
$SHELL نشان می‌دهد از کدام شل داریم استفاده می‌کنیم
$MAIL مسیر صندق پستی کاربر را نشان می‌دهد
$PATH مسیر فایل‌های اجرایی سیستم (executable) را نشان می‌دهد
$PWD مسیر شاخه جاری را نشان می‌دهد
$USER نام کاربری را نشان می دهد.


اشاره کرد .
خیلی خوب ، برای شروع می توانید از چند تا مثال ساده استفاده کنیم :



#!bin/bash
OS=Linux
echo “My Operating System is $OS"


توجه کنید که من یک متغییر جدید درست کردم که نباید توی لیست متغییر های عمومی سیستم باشد . دلیلش هم اینه که یک متغیر نمی‌تواند همزمان دو تا مقدار متفاوت در خود ذخیره کند .
و حالا یک مثال کاربردی‌تر :
فرض میکنیم شما به عنوان یک کاربر سیستم (غیر root) یک اسکریپت نوشته‌اید ولی این اسکریپت را نمی‌توانید به یکی از شاخه‌های $PATH انتقال دهید . برای حل این مشکل می‌توانید یک پوشه به نام bin در شاخه خانگی خود بسازید و اسکریپت ساخته شده را به این پوشه انتقال دهید .
حال باید به متغیر $PATH سیستم یک مسیر جدید اضافه کنید :



echo $PATH
PATH=$PATH:/home/$USER/bin


حالا هر اسکریپتی که در این پوشه باشه رو می‌توانید خیلی راحت اجرا کنید بدون اینکه مسیر اسکریپ رو مشخص کنید !
همان‌طور که ملاحظه کردید این قسمت اول آموزش Shell Environment هستش و مباحث راجع به این موضوع زیاده . لطفاً در یادگیری مطالب عجله نکنید .

بخش دوم نوشته شده توسط mah454 (http://www.technotux.org/html/PNphpBB2-profile-mode-viewprofile-u-4911.html)

armintirand
چهارشنبه 15 دی 1389, 12:47 عصر
ممنون از دوست عزیز که کار رو شروع کردندولی باز فهرست بندی نشد الان اگه من بخوام مطلب رو ادامه بدم با مشکل مواجه میشیم.
شما اگه فهرستی مانند مثال پایین دارید بذارید تا من هم بتونم کمکی در حد سوادم بکنم در غیر این صورت من فهرستبندی بکنم.


متغیرها(محلی و جهانی)
ثابتها
دستورات شرطی
...

راستی دوستان زیادی قبلا از این پروژه‌ها انجام دادند ولی دوست دارم این پروژه به حدی برسه که اگه بخواهیم از یک توزیع خط فرمان مانند آرچ بدون دسکتاپ برای تمام کارهای یک سیستم عامل استفاده کنیم مرجع کاملی داشته باشیم.یک موضوع دیگه بهتره هر مبحث رو به صورتپیام خصوصی با هم کامل میکردیم بعدبه صورت عمومی عرضه میکردیم.

darklove
پنج شنبه 16 دی 1389, 10:29 صبح
سلام دوست عزیز
بنده تو چند انجمن دارم این مبحث ادامه میدم، اگر اجازه دهید دارم همین کار را انجام میدهم.
و اما ادامه ی مطلب


کوتنشن گذاری :

به طور کلی سه نوع کوتنشن وجود دارد.

1- کوتنشن دوتایی " " : برای قرار دادن رشته هایی که در آنها فاصله وجود دارد.

مثلا :


Thda=”my name is”
Echo “$Thda Darkness”


1- تک کوتنشن ‘ ‘ : هر چیزی که در بین این کوتنشن تایپ شود عینا در خروجی چاپ میشود، در این کوتنشن نمیتوانید مقدار متغییرها را با علامت $ مورد استفاده قرار دهید.

مثلا :




Thda=’My name is darkness’


1- پشت نقل قول ` ` : از این نوع کوتنشن برای اجرای دستورات داخل “ “ استفاده میشود و معمولا برای قرار دادن خروجی یک دستور دورن یک متغییر استفاده میشود.

مثلا :


Maj=”`lsmod`”
Echo “$Maj”


متغییرها :

یک متغییر مکانی در حافظه است که شما به bash میگوئید برای محتوایی که شما تعیین میکنید آنجا را رزرو کند، در Shell Programing لازم نیست اول متغییرها را تعریف کنید، زیرا هرجا که نیاز داشتید میتوانید تعریف نمائید.

انواع متغییرها :

متغییرهای کاربر : این دسته به وسیله کاربر تعریف میشوند.

متغییرهای محیطی : این ها بخشی ار محیط سیستم هستند، لازم به تعریف آنها نیست، میتوانید در داخل برنامه مانند هر متغییر دیگری استفاده کنید و میتوان تغییر داد.

متغییرهای داخلی : این متغییرها به وسیله سیستم در اختیار شما قرار میگیرند و قابل تغییر نمیباشند.



قواعد نام گذاری متغییرها :

1- نام متغییر باید با حروف الفبا شروع شود و میتواند شامل حروف، اعداد و تنها علامت _ باشد.

2- نه در نام متغییر و نه در مقدار نباید از فاصله استفاده شود.

3- متغییرها مانند نام فایلها و دستورات به حروف بزرگ و کوچک حساسند.

4- شما میتوانید متغییرهای پوچ تعریف کنید.

استفاده در دستور read در Shell

برای گرفتن اطلاعات از کاربر و ذخیره آن در یک متغییر.

مثلا :


#!/bin/bash
# Read name
Echo “ Please enter your name : “
Read name
Echo “ Hi $name”

darklove
دوشنبه 20 دی 1389, 10:20 صبح
انجام محاسبات عددی :
به دو روش‌های متعددی می‌توان محاسبات عددی انجام داد
روش اول
استفاده از دستور expr
این دستور دو مقدار عددی را از کاربر گرفته و عملیات مورد نظر را روی آن انجام می‌دهد :




expr 2 + 5



توجه : باید بین عدد و دستور محاسبه یک فاصله (space) باشد .

ARG1 | ARG2 اول ارگمان اول را بر‌می‌گرداند . اگر نبود ارگومان دوم
ARG1 & ARG2 اول ارگمان اول را بر‌می‌گرداند . اگر نبود مقدار صفر رو بر می گرداند
ARG1 < ARG2 بررسی می‌کند که آرگومان اول کوچکتر از آرگومان دوم هست
ARG1 <= ARG2 بررسی می‌کند که آرگومان اول کوچکتر مساوی آرگومان دوم هست
ARG1 = ARG2 بررسی می‌کند آیا آرگومان اول و دوم با هم مساوی هستند
ARG1 != ARG2 بررسی می‌کند آیا آرگومان اول مخالف آرگومان دوم هست
ARG1 >= ARG2 بررسی می‌کند که آرگومان اول بزرگ‌تر مساوی از آرگومان دوم هست
ARG1 > ARG2 بررسی می‌کند که آرگومان اول بزرکتر از آرگومان دوم هست
ARG1 + ARG2 دو آرگومان را با هم جمع می کند
ARG1 - ARG2 تفریق دو آرگومان
ARG1 * ARG2 ضرب دو آزگومان
ARG1 / ARG2خارج قسمت تقسیم دو آزگومان
ARG1 % ARG2 باقیمانده تقسیم دو آرگومان

حالا یک مثال می‌زنیم :




#!/bin/bash
VAR1=10
VAR2=35
VAR3=`expr $VAR1 / $VAR2`
echo The result is $VAR3



یکی دیگر از روش‌ها استفاده از براکت [] هست .
برای مثال :




#!/bin/bash
VAR=$[1 + 3]
echo $VAR



و یا می‌توان محاسبات پیچیده‌تر رو انجام داد :




VAR1=100
VAR2=200
VAR3=45
VAR4=$[$VAR1 * ($VAR2 + $VAR3)]
echo $VAR4


همان طور که می‌بینید استفاده از متغییر ها در پوسته لینوکس برای انجام محاسبات عددی کار سختی نیست !

و آخرین روش برای محاسبه استفاده از دستور bc هستش .
فرق این روش با روش‌های قبلی قابلیت های این دستور است :
۱)استفاده از هر دو نوع اعداد صحیح و اعشاری
۲) استفاده از متغیر و آرایه
۳) استفاده از عبارات حسابی
۴) استفاده از دستورات و حلقه loop برای محاسبات پیچیده
۵) تابع پذیر

بعد از اجرای دستور bc شما با یک نوع کامندلان جدید روبرو می‌شوید که در آنجا می‌توانید محاسبات خود را انجام دهید :




$ bc
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty’.
12 * 5.4
64.8
3.156 * (3 + 5)
25.248
quit
$



با استفاده از q- می‌توانید محاسبات اعشاری را انجام دهید . البته در داخل کامندلاین bc با استفاده از متغیر scale می‌توانید تعیین کنید که خروجی محاسبه تا چند رقم اعشار نحاسبه شود . در ضمن اینکه به غیر از این متغییر شما می‌توانید متغیر های دیگری هم استفاده کنید.




$ bc -q
3.44 / 5
0
scale=4
3.44 / 5
.6880
quit
$



یلی خوب ! حالا یاد می‌گیرد که چگونه از دستور bc توی اسکریپت هایمان استفاده کنیم :
شکل کلی استفاده از دستور bc توی اسکریپت اینگونه است :


variable=`echo "options; expression" | bc`

نکته : در اینجا از backtick (`) استفاده شده .
Options همان متغییری است که شما در داخل دستور bc استفاده می‌کردید .
مثال :




#!/bin/bash
var1=`echo " scale=4; 3.44 / 5" | bc`
echo The answer is $var1
$


بخش چهارم نوشته شده توسط mah454 (http://www.technotux.org/html/PNphpBB2-profile-mode-viewprofile-u-4911.html)

eshpilen
دوشنبه 20 دی 1389, 23:23 عصر
مطالعهء این تاپیک مرتبط هم بنظرم خوبه: http://barnamenevis.org/showthread.php?83434

mamadsh
چهارشنبه 22 دی 1389, 18:21 عصر
سلام
من میخواستم در رابطه با برنامه نویسی در شل لینوکس ردهت از شما راهنمایی بخواهم. از دوستان خواهشمندم در مورد برنامه نویسی برای ساخت ماتریس دو بعدی کد اماده یا منبع کاربردی و مفیدی در این خصوص ارائه فرمایید.
ممنون

darklove
دوشنبه 27 دی 1389, 17:46 عصر
سلام مجدد !
توی این آموزش می‌خواهم بگم که چه‌جوری میشه چند تا پارامتر ، متغییر و … رو همزمان به یک دستور فرستاد !
یک مثال میزنم :
مثلاً با استفاده از همین دستور bc شما میخواهید چندین پارامتر و متغییر رو برای این دستور تعریف کنید . حالا چکار باید کرد ؟
بهترین کار است است که تمام این پارامتر ها و متغییر ها را به دستور redirect کرد :


#!/bin/bash
var1=10.46
var2=43.67
var3=33.2
var4=71
var5=`bc << EOF
scale = 4
a1 = ( $var1 * $var2)
b1 = ($var3 * $var4)
a1 + b1
EOF

توجه : به علامت backtic (`) توجه کنید !
همان‌طور که میبینید چندین متغییر به یک‌باره redirect شده به دستور و نتیجه کار توی متغییر var5 نگهداری شده است .

خروجی دستورات :
پایان کار هر دستور برابر است با یک خروجی به پوسته سیستم عامل .
برای اینکه بفهمیم که نتیجه اجرای یک دستور چه چیز بوده است می‌توانید مقدار متغییر $? رو برگردانید .
مثلاً:


$ date
Sat Sep 29 10:01:30 EDT 2007
$ echo $?
0
$


همان‌طور که می بینید پایان کار این دستور برابر شده با فرستادن مقدار 0 به متغییر $?
حال این مثال رو ببینید:


$ asdfg
-bash: asdfg: command not found
$ echo $?
127
$


میبینید که این بار برایر شد با عدد 127 ! چرا ؟
دلیلش هم این است که این دستور اصلاً در سیستم وجود ندارد ! پس پایان کار این دستور برابر است با 127 .
حالا به این مثال توجه کنید :


$ ./myprog.c
-bash: ./myprog.c: Permission denied
$ echo $?
126
$


این بار خروجی دستور برابر شده با 126 .
دلیلش هم آینه که کاربر اجازه اجرای دستور رو نداشته … .
و این مثال :


$ date %t
date: invalid date `%t’
$ echo $?
1
$


نتیجه کار برابر شده با 1 .
دلیل این مورد هم آینه که پارامتر t% به درستی استفاده نشده است .
این لیستی از پایان کار دستورات توی پوسته لینوکس که :

0دستور به درستی اجرا شد
1 یک پیغام ناشناخته
2 استفاده نادرست از دستور
126 دستور غیر قابل اجراست
127 دستور پیدا نشد
128 متغییر بی‌اعتبار
128 یک ارور توسط سیگنال . مثلاً (signal 9)
130 دستور توسط کلید های Ctrl + C متوقف شد
255 وضعیت خارج از محدوده

خیلی خوب !
تا اینجا تمام این خروجی ها استاندارد بوده و توسط خود پوسته برگردانده می‌شود . ولی شما می‌توانید با استفاده از دستور exit خروجی دلخواه خودتان را به پوسته بفرستید :
مثلاً :


#!/bin/bash
# testing the exit status
var1=10
var2=30
var3=$[ $var1 + var2 ]
echo The answer is $var3
exit 5
$


بعد از اجرای این اسکریپت شما با خروجی 5 مواجه خواهید شد :


$ ./test
The answer is 40
$ echo $?
5
$


همچنین شما می‌توانید به این صورت از دستور exit استفاده کنید .


#!/bin/bash
# testing the exit status
var1=10
var2=30
var3=$[ $var1 + var2 ]
exit $var3
$


که خروجیش اینجوری میشه :


$ echo $?
40
$



بخش پنجم نوشته شده توسط mah454 (http://www.technotux.org/html/PNphpBB2-profile-mode-viewprofile-u-4911.html)

darklove
یک شنبه 03 بهمن 1389, 16:03 عصر
دستورات شرطی و حلقه ها :


Bash هم مانند سایر زبان ها امکان استفاده از دستورات شرطی و حلقه ها را با ما میدهد که با کمک آنها میتوانیم مسیر اجرای برنامه را تغییر دهیم.

دستور if :


If شرط
then دستور 1
esle دستور 2
fi اتمام



این دستورات یک شرط را محاسبه خواهند نمود تا اگر درست بود یک کاری را انجام دهند و اگر اشتباه کار دیگر.

اغلب شل ها به شما اجازه میدهند از جملات شرطی استفاده کنید، جملات شرطی اجازه میدهند تا تستهای شرطی کامل را بتوان در برنامه شل انجام داد.


if شرط
then دستور 1
elif شرط
then دستور 2
else دستور 3
fi اتمام



مثال :


#!/bin/bash
if [-d /etc/squid ]
then
echo “Squid is exists”
else
echo “Squid is not exists”
fi



در این مثال چک میکند که مسیر بالا وجود دارد یا خیر.

شرطهای تو در تو :


if 1 شرط ; then
دستور1
elif 2 شرط ; then
دستور2
elif 3 شرط ; then
.
.
.
else


دستور n


fi



مثال :


#!/bin/bash
echo “ Pleae enter 1 or 2”
read ent
if [“$ent”=”1”]
then
echo “You spelled 1”
elif [“$ent”=”2”]
then
echo “You spelled 2”
else
echo “You spelled ???”
fi



دستور For :

از این دستور برای گردش بین یکسری مقادیر استفاده می شود.

شکل دستور :


for نام متغییر in لیست
do
دستورات
done



مثال :


#!/bin/bash
for print in One Two Tree Four Five
do
echo $print
done



خروجی حلقه for بدین صورت خواهد بود.




One
Two
Tree
Four
Five




دستور while :

از این دستور برای تکرار بخشی از برنامه تا زمانی که شرط خاصی برقرار باشد استفاده میشود.


while شرط
do
دستورات
done



مثال :


#!/bin/bash
# Root Login
echo “ enter login name “
loginname=”root”
while root $loginname=”root”
do
echo –n “Please enter another login user”
read loginname
done



در مثال بالا تا نام کاربر root را وارد نکنید با پیغام Please enter another login user روبرو خواهید شد.

دستور case :

این دستور یکی از نمونه های دستورات متناوب است که شما را قادر میسازد از مقادیر مختلفی برای یک متغییر لستفاده کنید.

شکل دستور :


case نام متغییر in
Pattern 1) دستور
دستور
......
;;
Pattern 2) دستور
دستور
......
;;
Pattern 3) دستور
دستور
......
;;
...
...
...
esac



مثال :


#!/bin/bash
## Time, Am, PM
hours=`date+’%k’`
mins=`date+’%M’`
if [$hours -ge 12]
then
case $hours in
13) hours=1 ;;
14) hours=2 ;;
15) hours=3 ;;
16) hours=4 ;;
17) hours=5 ;;
18) hours=6 ;;
19) hours=7 ;;
20) hours=8 ;;
21) hours=9 ;;
22) hours=10 ;;
23) hours=11 ;;
esac
ampm=pm
else
case $hours in



0) hours=12 ;;


esac
ampm=am
fi
echo $hours: $mins $ampm



این برنامه زمان را بر حسب Am و Pm به ما نشان میدهد.

maryam126
چهارشنبه 28 اردیبهشت 1390, 14:44 عصر
salam.
in barname haro dar koja ejra mikonannd?

maryam126
چهارشنبه 28 اردیبهشت 1390, 14:47 عصر
man matlab be soorate pdf dar morede shell programming mikham
harchi mkigardam kamel nist?
ke koja bayad barnamehash ejra beshe va aslan shellprogramming chiye?:گیج:

blue_lotus
پنج شنبه 29 اردیبهشت 1390, 15:47 عصر
maryam126

Shell Programming به برنامه‌های اسکریپتی‌ای میگن که در یک فایل متنی مینویسن و پسوند .sh دارن. بعد با مفسرهای لینوکس اجراش میکنن. به زبان ساده میشه برنامه‌هایی که از امکانات داخلی لینوکس استفاده میکنن. مثل فایل‌های bat در داس که از دستورات و ... یک برنامه میساختن برای کارهای مختلف.

داخل فایل zip ایی که در پست ۴ام صفحه اول گذاشتم توضیح داده کجا بنویسید و چطوری اجراش کنین.

maryam126
چهارشنبه 04 خرداد 1390, 19:10 عصر
سلام.
این فایل زیپ رو پیدا نکردم
میشه دوباره بزارید؟

blue_lotus
دوشنبه 09 خرداد 1390, 15:57 عصر
این فایل (http://barnamenevis.org/attachment.php?attachmentid=64408&d=1293901831) رو بگیرید

aliramazani
دوشنبه 18 اردیبهشت 1391, 12:05 عصر
سلام. چند نمونه شل موشته شده مي خوام كدهاش را ببينم.

darklove
پنج شنبه 28 اردیبهشت 1391, 21:54 عصر
Check Website
Judynet (http://judynet.ir)

prpe26
پنج شنبه 28 اردیبهشت 1391, 22:16 عصر
من شل اسکریپت کار کردم ؛ واقعا کار آمد و خوب بود!

مثلا راحت میشه باهاش یک توزیع Netinstall رو اداره کرد؛ شما فقط دستور آپدیت مخازن ؛ و همچنین دستور نصب پکیج های لازم رو مینویسید و میزارید در پوشه خانگی کاربر مقصد (/etc/skel) و بعد از نصب خود به خود اجرا میشه و سیستم رو غنی میکنه.....
این یه نمونش؛ نمونه دیگش به همراه zenity هست که میشه برای شل اسکریپت GUI ساخت!

nefrat
سه شنبه 23 خرداد 1391, 07:50 صبح
میخوام یه دستور بنویسم که یه اسم از ورودی بگیره اگر کاربری با این نام وجود داشت پیغام بده اگر نداشت اونو بسازه پیغام بده...!!!! چطوری اینو بنویسم؟

در همین حد نوشتم «

ای بابا نمیتونم بنویسم اینجا کد رو !!!


#!/bin/bash
# Script to add a user to Linux system
if [ $(id -u) -eq 0 ]; then
read -p "Enter username : " username
read -s -p "Enter password : " password
egrep "^$username" /etc/passwd >/dev/null
if [ $? -eq 0 ]; then
echo "$username exists!"
exit 1
else
pass=$(perl -e 'print crypt($ARGV[0], "password")' $password)
useradd -m -p $pass $username
[ $? -eq 0 ] && echo "User has been added to system!" || echo "Failed to add a user!"
fi
else
echo "Only root may add a user to the system"
exit 2
fi