一、基本参数
1、-f参数:指定Shell脚本文件名
#!/bin/bash echo "Hello World"
执行:./test.sh
输出:Hello World
2、-n参数:不执行脚本内容,用于检查语法错误
#!/bin/bash -n echo "Hello World"
执行:./test.sh
输出:无,因为脚本没有实际执行。
3、-x参数:打印执行的每一条命令及结果
#!/bin/bash -x ls pwd
执行:./test.sh
输出:
ls
file1 file2
pwd
/home/user/test
二、标准输入输出参数
1、重定向标准输出到文件
#!/bin/bash echo "Hello World" > output.txt
执行:./test.sh
输出:output.txt文件中包含字符串"Hello World"
2、从文件中读取输入
#!/bin/bash read name echo "Hello $name"
执行:./test.sh \< input.txt
输入:John
输出:Hello John
3、将命令的标准输出重定向到标准错误输出
#!/bin/bash ls /fake/dir 2>&1 >&2
执行:./test.sh
输出:ls: cannot access '/fake/dir': No such file or directory
三、参数替换
1、${var}替换成变量var的值
#!/bin/bash var="World" echo "Hello ${var}"
执行:./test.sh
输出:Hello World
2、${var:-default}如果var未定义,则使用默认值default
#!/bin/bash echo "Hello ${var:-World}"
执行:./test.sh
输出:Hello World
3、${var:=default}如果var未定义,则设置为默认值default
#!/bin/bash echo "Hello ${var:=World}" echo "var is now set to $var"
执行:./test.sh
输出:
Hello World
var is now set to World
4、${var:+othervalue}如果变量var被设置,则使用othervalue
#!/bin/bash var="Hello" echo "${var:+World}" echo "${var:+Everyone}"
执行:./test.sh
输出:
World
Everyone
四、通配符
1、*匹配任意长度的任何内容
#!/bin/bash for file in * do echo "$file" done
执行:./test.sh
输出:当前目录下的所有文件和目录名称
2、?匹配一个字符
#!/bin/bash ls ????
执行:./test.sh
输出:列出4个字符长的文件名
3、[]匹配中括号中任意一个字符
#!/bin/bash ls [abc]*
执行:./test.sh
输出:列出以a、b、c开头的文件名
五、管道
1、将ls命令的输出通过管道符号发送给grep命令,用于搜索:
#!/bin/bash ls | grep "file"
执行:./test.sh
输出:列出所有文件名中包含"file"的文件
2、将ping命令的输出通过管道符号发送给awk命令,用于处理:
#!/bin/bash ping -c 3 www.google.com | awk '/^rtt/ { print $4 }'
执行:./test.sh
输出:ping的三次响应时间
六、条件语句
1、if语句
#!/bin/bash if [ -f file.txt ] then echo "file.txt exists" else echo "file.txt does not exist" fi
执行:./test.sh
输出:如果当前目录下存在file.txt文件,则输出"file.txt exists",否则输出"file.txt does not exist"
2、case语句
#!/bin/bash echo "Enter a number between 1 and 3: " read num case $num in 1) echo "You entered 1" ;; 2) echo "You entered 2" ;; 3) echo "You entered 3" ;; *) echo "Invalid input" ;; esac
执行:./test.sh
输入:2
输出:You entered 2
七、循环语句
1、for循环
#!/bin/bash for i in {1..5} do echo "Count: $i" done
执行:./test.sh
输出:
Count: 1
Count: 2
Count: 3
Count: 4
Count: 5
2、while循环
#!/bin/bash i=5 while [ $i -gt 0 ] do echo "Count: $i" i=$((i - 1)) done
执行:./test.sh
输出:
Count: 5
Count: 4
Count: 3
Count: 2
Count: 1
3、until循环
#!/bin/bash i=1 until [ $i -gt 5 ] do echo "Count: $i" i=$((i + 1)) done
执行:./test.sh
输出:
Count: 1
Count: 2
Count: 3
Count: 4
Count: 5
八、函数
1、定义函数
#!/bin/bash function print_input { echo "You entered: $1" } print_input "Hello World"
执行:./test.sh
输出:You entered: Hello World
2、函数返回值
#!/bin/bash function calc_sum { total=$(( $1 + $2 )) echo $total } result=$(calc_sum 10 20) echo "The result is: $result"
执行:./test.sh
输出:The result is: 30
以上是Linux运维常用的Shell参数及实例的介绍,可以在日常的运维工作中大显身手!