Shell

示例

bash -c 'num=1;while (true); do echo "the number is $num"; let "num++";sleep 1; done' >> write.log

bash -c "date '+%Y-%m-%d %H:%M:%S'" >> /home/test.log

变量

#!/bin/bash
#--------------------------------------------
# 脚本说明
#--------------------------------------------

#变量
name="jim"
#只读变量
#readonly name
#删除变量
#unset name

#字符串
www_path="/data/wwwroot"
echo $www_path
#/data/wwwroot
echo "website:"$www_path";"
echo "website:${www_path};"
#website:/data/wwwroot;

echo ${#file_path}
#获取字符串长度 13
echo ${file_path:0:5}
#从下标0开始取5位 /data

#数组
student=("jim" "tom")
student[2]="lili"

name=${student[2]}
echo $name
#数组取值 lili
echo ${#student[*]}
#数组长度 3

#引用
. ./test.sh
#等同于
#source ./test2.sh

输出

echo -e "OK! \c"
echo "It is a test"
#OK! It is a test
#-e 开启转义 \c 不换行

date_time=`date "+%Y-%m-%d %H:%M:%S"`
#获得命令执行结果
echo $date_time > test_last.log
#输出结果到文件
echo $date_time >> test.log
#追加结果到文件

传递参数

#./mydata.sh jim tom

echo "参数1:"$1 #参数1:jim
echo "参数2:"$2 #参数2:tom

运算符

val=`expr 10 + 5`
echo $val

# -eq   检测两个数是否相等,相等返回 true。    [ $a -eq $b ] 返回 false。
# -ne   检测两个数是否相等,不相等返回 true。   [ $a -ne $b ] 返回 true。
# -gt   检测左边的数是否大于右边的,如果是,则返回 true。 [ $a -gt $b ] 返回 false。
# -lt   检测左边的数是否小于右边的,如果是,则返回 true。 [ $a -lt $b ] 返回 true。
# -ge   检测左边的数是否大于等于右边的,如果是,则返回 true。   [ $a -ge $b ] 返回 false。
# -le   检测左边的数是否小于等于右边的,如果是,则返回 true。   [ $a -le $b ] 返回 true。

流程控制

a=10
b=9
if [ $a == $b ]; then echo "a 等于 b"; elif [ $a -gt $b ]; then echo "a 大于 b"; elif $

for v in 1 2 3 4 5; do echo "the value is $v"; done

num=1
while (( $num <= 5 )); do echo "the number is $num"; let "num++"; done

参考

http://www.runoob.com/linux/linux-shell-passing-arguments.html

你可能感兴趣的:(Shell)