Shell编程学习笔记
条件判断
1)-n:字符串不为null时为true
if [ -n "$str" ]; then echo "not null" fi
2)-z:字符串为null或空字符串时为true
if [ -z "$str" ]; then echo "null or empty string" fi
3)-f:文件存在时返回true
if [ -f "$temp_file" ]; then echo "File exists" fi
特殊意义的符号
1. $$:Shell script执行时的进程编号,一般用于临时文件的后缀。
temp_file=/tmp/temp_file_$$
2. $*:存放传入Shell script的所有参数,以IFS的第一个字符作为分隔符。$IFS是Input Field Separator,shell读取输入时使用IFS作为分隔符。
3. $@:与$*一样,唯一不同的是以一个空格作为分隔符。
4. $#:传入Shell script的参数个数。
5. $n(n为数字1,2,3...):按照位置获取传入Shell script的参数
bash test.sh one two three
则$1为one,$2为two等等。
函数
1. 函数声明
say_something() { echo $* }
在Shell script中调用函数时只需要写出函数的名称即可,不许要在后面加上括号,传递给函数的参数直接列在函数名称后面。
例如调用上面的函数:
1. function_name $para_one $para_two
2. function_name "hello" "world"
字符串替换
1. ${param%%word}:从后面开始,删除掉param中匹配word的最长的部分,返回余下的字符。
2. ${param##word}:从前面开始,删除掉param中匹配word的最长的部分,返回余下的字符。