目录
函数
基本的使用方式
Avoid duplicating code in our scripts
#!/usr/bin/env bash
# 1st way to define a function
function Hello() {
local LNAME=$1
echo "Hello $LNAME"
# or simply:
echo "Hello $1"
}
# 2nd way, emitting the word "function"
Goodbye() {
echo "Goodbye"
}
# Calling the functions after defining them
Hello Bob # No parenthesis when calling the function
# Bob is the first parameter passed to the function
Goodbye # They are invoked by their name like other linux command
exit 0
Pipes的使用
Pipes let us take the output of one program and feed it to the input of another.
Exceptionally sophiscated programs can be created simply by piping commands together.
#!/usr/bin/env bash
FILES=`ls -1 | sort -r | head -3`
# ls -1: runs the ls command and limits the columns to one
# sort -r: reverse the sort order
# head -3: take the first three results
COUNT=1
for FILE in $FILES
do
echo "File #$COUNT = $FILE"
((COUNT++))
done
exit 0
实例
Get first 10 files in alphabetical order in the current directory and print their names.
#!/usr/bin/env bash
function GetFiles() {
FILES=`ls -1 | sort | head -10`
}
function ShowFiles() {
local COUNT=1
for FILE in $@
do
echo "FILE #$COUNT = $FILE"
((COUNT++))
done
}
GetFiles
ShowFiles $FILES
exit 0
References
LinkedIn Learning: https://www.linkedin.com/learning/learning-linux-shell-scripting-2018