Shell Script Programming (Function) Unix Operating System Shell Script Programming (Function) Computer Science Department (FLAS-KU) - Prasertsak U. อ้างอิงจาก freeos
Function Function is series of instruction/commands. To define function use following syntax: function-name ( ) { command1 command2 ..... ... commandN return } Computer Science Department (FLAS-KU) - Prasertsak U.
Sample #!/bin/bash function quit() { exit 0 } function hello() echo “Hello!” hello quit echo “...” Computer Science Department (FLAS-KU) - Prasertsak U.
Function with parameters #!/bin/bash function quit() { exit 0 } function showmsg() echo $1 showmsg Hello showmsg World quit Computer Science Department (FLAS-KU) - Prasertsak U.
Function with parameters (2) $ vi passdemo function demo() { echo "All Arguments to function demo(): $*" echo "First argument: $1" echo "Second argument: $2" echo "Third argument: $3" return } # Call the function demo one two three Computer Science Department (FLAS-KU) - Prasertsak U.
Running a sample $ chmod +x passdemo $ ./passdemo All Arguments to function demo(): one two three First argument: one Second argument: two Third argument: three Computer Science Department (FLAS-KU) - Prasertsak U.
Function with parameters (3) $ vi passdemo2 function cal() { n1=$1 op=$2 n2=$3 ans=0 if [ $# -eq 3 ]; then ans=$(( $n1 $op $n2 )) #same as $(expr $n1 $op $n2) echo "$n1 $op $n2 = $ans" return $ans else echo "Function cal requires atleast three args“ return 1 fi } cal 5 + 10 cal 10 - 2 cal 10 / 2 echo $? Function with parameters (3) Computer Science Department (FLAS-KU) - Prasertsak U.
Running a sample $ chmod +x passdemo2 $ ./passdemo2 5 + 10 = 15 10 - 2 = 8 10 / 2 = 5 5 Computer Science Department (FLAS-KU) - Prasertsak U.
Using Single source Function The same basic process can be used in a script to choose a particular sequence. aliasps function _ps() { UNAME=$(uname) case "$UNAME" in FreeBSD|NetBSD) alias ps='ps -o pid,ppid,command' ;; SunOS|Linux) alias ps='ps -o pid,ppid,args' esac } _ps Computer Science Department (FLAS-KU) - Prasertsak U.
unalias ชื่อคำสั่ง = ยกเลิกการใช้งาน alias นั้น Running a sample $ chmod +x aliasps $ . aliasps ให้สั่ง run ภายใต้ shell ที่กำลังทำงานอยู่ โดยไม่ให้ copy shell ขึ้นมาใหม่ เพื่อที่คำสั่ง alias จะได้มีผลภายใต้ shell ตัวปัจจุบัน เมื่อ run เรียบร้อยแล้วให้ตรวจสอบด้วยการใช้คำสั่ง alias จะต้องแสดงข้อมูลของ ps ตามที่เรากำหนดลงไปตาม script unalias ชื่อคำสั่ง = ยกเลิกการใช้งาน alias นั้น Computer Science Department (FLAS-KU) - Prasertsak U.