茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1670858 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
IMG_00010.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

小企鵝開談 : [分享]學習寫linux上的script推薦之學習網站

發表者 討論內容
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[分享]學習寫linux上的script推薦之學習網站
想要學習寫linux上的script, 可以推薦一下學習網站嗎?

參考資料: www.tldp.org

網路上可以找到
Bash Guide for Beginners, Machtelt Garrels
http://www.tldp.org/LDP/Bash-Beginners-Guide/html/index.html
裡面有介紹Bash的語法和debug的方法. 可以作為學習的參考.
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[自創]冷日也來推薦一下
study-area的好文件,
這裡是中文的喔!
http://www.study-area.net/linux/system/linux_shell.htm

鳥哥的私房菜裡面也有不少好東東,
要學小企鵝的人,
這兩郭網站是必逛的啦!
http://linux.vbird.org/linux_basic/0320bash.php
http://linux.vbird.org/linux_basic/0340bashshell-scripts.php

PS:現在這兩郭網站的站長(網中人和鳥哥)好像結盟了,所以更能提供許許多多新又詳盡的文件給大家,真是學小企鵝同胞的福音!
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[分享]給bash初學者的小禮物
給bash初學者的小禮物

一些bash編程中常犯的錯誤,來自abs-guide

注意!!!!這裡面的例子全部是錯誤的!!!

=====變量使用=====
1.將bash保留字符串定義為變量名/變量名中含有保留字符
case=123 #case是保留字串
ca((=123 #((是保留字符
var-1=123 #-是保留字符,用var_1好了


2.變量用數字開頭
12var=123


3.變量與函數定義重名
do_something ()
{
  echo "This function does something with \"$1\"."
}

do_something=do_something

do_something do_something


4.變量賦值=兩邊有空格
var1 = 123 # var1=123才行


===============
=====比較[]=====
5.[]內缺少空格
[$var -eq 5 ]
[ $var=ab ]


6.<>使用時不加\
[ $var < ab ] #這時<>被解釋為輸出重定向,[ $var \< ab ]才對


7.=\>\<與 -eq -gt -lt不分
[ $var -eq 45.6 ] #=\>\<用來比較字串,而eq gt lt只能用來比較整數,注意是整數,不是數值

=================
8.腳本的sha-bang中不能有非法字符,用dos/win中寫的東西是以\r\n換行的,腳本第1行實際是 #!/bin/bash\r\n,而只有#!/bin/bash\n才是合法的

9.子shell中對變量的操作是不能傳遞給它的父shell
var=123
( $var=456 )
echo $var #結果是123而不是456
echo 456|read var
echo $var #結果還是123,管道是會發起子shell的




原文出處:给bash初学者的小礼物 - Shell - ChinaUnix.net -
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]Unix / Linux - Shell Functions

Unix / Linux - Shell Functions


In this chapter, we will discuss in detail about the shell functions. Functions enable you to break down the overall functionality of a script into smaller, logical subsections, which can then be called upon to perform their individual tasks when needed.

Using functions to perform repetitive tasks is an excellent way to create code reuse. This is an important part of modern object-oriented programming principles.

Shell functions are similar to subroutines, procedures, and functions in other programming languages.

Creating Functions

To declare a function, simply use the following syntax −



function_name () {
list of commands
}

The name of your function is function_name, and that's what you will use to call it from elsewhere in your scripts. The function name must be followed by parentheses, followed by a list of commands enclosed within braces.

Example

Following example shows the use of function −



#!/bin/sh
# Define your function here
Hello () {
echo "Hello World"
}
# Invoke your function
Hello

Upon execution, you will receive the following output −



$./test.sh
Hello World

Pass Parameters to a Function


You can define a function that will accept parameters while calling the function. These parameters would be represented by $1, $2 and so on.

Following is an example where we pass two parameters Zara and Ali and then we capture and print these parameters in the function.



#!/bin/sh
# Define your function here
Hello () {
echo "Hello World $1 $2"
}
# Invoke your function
Hello Zara Ali

Upon execution, you will receive the following result −



$./test.sh
Hello World Zara Ali

Returning Values from Functions


If you execute an exit command from inside a function, its effect is not only to terminate execution of the function but also of the shell program that called the function.

If you instead want to just terminate execution of the function, then there is way to come out of a defined function.

Based on the situation you can return any value from your function using the return command whose syntax is as follows −



return code

Here code can be anything you choose here, but obviously you should choose something that is meaningful or useful in the context of your script as a whole.

Example

Following function returns a value 1 −



#!/bin/sh
# Define your function here
Hello () {
echo "Hello World $1 $2"
return 10
}
# Invoke your function
Hello Zara Ali
# Capture value returnd by last command
ret=$?
echo "Return value is $ret"

Upon execution, you will receive the following result −



$./test.sh
Hello World Zara Ali
Return value is 10

Nested Functions


One of the more interesting features of functions is that they can call themselves and also other functions. A function that calls itself is known as a recursive function.

Following example demonstrates nesting of two functions −



#!/bin/sh
# Calling one function from another
number_one () {
echo "This is the first function speaking..."
number_two
}
number_two () {
echo "This is now the second function speaking..."
}
# Calling function one.
number_one

Upon execution, you will receive the following result −



This is the first function speaking...
This is now the second function speaking...

Function Call from Prompt


You can put definitions for commonly used functions inside your .profile. These definitions will be available whenever you log in and you can use them at the command prompt.

Alternatively, you can group the definitions in a file, say test.sh, and then execute the file in the current shell by typing −



$. test.sh

This has the effect of causing functions defined inside test.sh to be read and defined to the current shell as follows −



$ number_one
This is the first function speaking...
This is now the second function speaking...
$

To remove the definition of a function from the shell, use the unset command with the .f option. This command is also used to remove the definition of a variable to the shell.



$unset .f function_name



原文出處:Unix / Linux Shell Functions
前一個主題 | 下一個主題 | 頁首 | | |



Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|