انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => انجمن عمومی => نویسنده: MHA152 در 12 فروردین 1392، 04:05 ب‌ظ

عنوان: آیا می توان در ترمینال تابع نوشت
ارسال شده توسط: MHA152 در 12 فروردین 1392، 04:05 ب‌ظ
سلام من می خواستم از یکسری از دستورات تابعی بوجود بیاورم تا بتوانم آنها را به راحتی فراخوانی کنم
عنوان: پاسخ : آیا می توان در ترمینال تابع نوشت
ارسال شده توسط: ali.abry در 12 فروردین 1392، 04:19 ب‌ظ
منظورتون از تابع چی هستش ؟
نکنه منظورتون دستور alias هست ؟
یا منظورتون اینه که چه جوری چندین تا دستور رو پشت سره هم به کار ببرین که هر کدوم برا خروجی قبلی کاری انجام بده ؟
عنوان: پاسخ : آیا می توان در ترمینال تابع نوشت
ارسال شده توسط: MHA152 در 12 فروردین 1392، 05:50 ب‌ظ
یا منظورتون اینه که چه جوری چندین تا دستور رو پشت سره هم به کار ببرین که هر کدوم برا خروجی قبلی کاری انجام بده ؟
خیر منظورم این است که چند تا خط کد را فقط با زدن یک کد کوتاه انجام دهد برای مثال بجای اینکه برای آپدیت دستورsudo apt-get update && sudo apt-get upgradeرا وارد کنم از یک کلمه ی کلیدی + عبارت upd برای فراخوانی این دستورات استفاده کنم
عنوان: پاسخ : آیا می توان در ترمینال تابع نوشت
ارسال شده توسط: محمدرضا ح. در 12 فروردین 1392، 06:11 ب‌ظ
خب خوبه دنبال راههای جالبی هستی :)

دو راه داری ، یا اسکریپت بنویسی و اونها رو توی پوشه های مخصوص دستورات قرار بدی و یا در bashrc که در home خودت هست ، alias درست کنی.

این که یک کلمه کلیدی + upd باشه با دستور case امکان پذیره ، یک اسکریپت ساده :

#!/bin/bash
case $1 in
upd)
apt-get update
;;
esac

البته خودت میتونی با همین ساختار اون رو تغییر بدی و یک اسکریپت بلند و بالا درست کنی :) . همچنین بعدش اون رو مثلا با نام script ذخیره کردی و پرمیشن دادی :

/path/to/script upd
و یا اون رو در این دایرکتوری قرار بدی :

/usr/bin
:)
عنوان: پاسخ : آیا می توان در ترمینال تابع نوشت
ارسال شده توسط: MHA152 در 12 فروردین 1392، 09:05 ب‌ظ
میشه لطفا اون اولش را یکم باز تر کنید
عنوان: پاسخ : آیا می توان در ترمینال تابع نوشت
ارسال شده توسط: محمدرضا ح. در 12 فروردین 1392، 09:15 ب‌ظ
میشه لطفا اون اولش را یکم باز تر کنید

man case
عنوان: پاسخ : آیا می توان در ترمینال تابع نوشت
ارسال شده توسط: MHA152 در 12 فروردین 1392، 09:22 ب‌ظ
No manual entry for caseچه توضیح زیبا و کاملی ;D
عنوان: پاسخ : آیا می توان در ترمینال تابع نوشت
ارسال شده توسط: محمدرضا ح. در 12 فروردین 1392، 09:49 ب‌ظ
No manual entry for caseچه توضیح زیبا و کاملی ;D

خب چرا خودت اسکریپتش رو نمینویسی؟ ببین این رو بنویس :

#!/bin/bash
case $1 in
upd)
apt-get update
;;

و شرحش :

اولین خط میگه که از شل بش استفاده کن ، خط دوم میگه هر موقع مقادیر تعریف شده (در اینجا upd) رو به ازای متغیر $1 دریافت نمودی چه کار کن. دقت کن مقادیر رو بدین شکل تعریف میکنند :

val)
command
;;

بجای val نام چیزی که میخوای باشه ، بجای command دستور و ;; هم خودش! هر چند تا که خواستی اینطوری درست کن بعدش با esac محوطه case رو ببند :) .
عنوان: پاسخ : آیا می توان در ترمینال تابع نوشت
ارسال شده توسط: edris در 12 فروردین 1392، 11:14 ب‌ظ
اگه بخوایم اسکریپت نویسی رو شروع کنیم شما چه راهی رو پیشنهاد میکنید و اینم باید بگم که من دبیرستانی هستم پس از یه جای ساده و مفید میخوام شروع کنم
عنوان: پاسخ : آیا می توان در ترمینال تابع نوشت
ارسال شده توسط: xubuntu4iran در 13 فروردین 1392، 01:25 ق‌ظ
http://wiki.linuxreview.ir/%DA%A9%D8%AA%D8%A7%D8%A8_%D8%A2%D8%B4%D9%86%D8%A7%DB%8C%DB%8C_%D8%A8%D8%A7_%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87_%D9%86%D9%88%DB%8C%D8%B3%DB%8C_BASH
عنوان: پاسخ : آیا می توان در ترمینال تابع نوشت
ارسال شده توسط: edris در 13 فروردین 1392، 10:36 ب‌ظ
عجب چیزیه ایول