[command]脚本基本知识

脚本基本知识

#! /bin/zsh
exit 0 #退出并传出一个值,可以echo $?显示

说明使用的bash。

根据时间创建文件

#! /bin/zsh
echo -e "input file name"
read fileuser


filename=${fileuser:-"filename"}

date1=$(date -v+2d +%Y%m%d)
date2=$(date +%Y%m%d)

file1=${filename}_${date1}
file2=${filename}_${date2}

touch "$file1"
touch "$file2"

数值计算

只支持整数运算

$(( 计算式 ))
ex:
echo $((3 + 4))

执行方式的区别

1)直接运行命令行
相当于在父进程中运行程序,变量会保留

2)./script.sh
相当于在子进程中运行程序,变量不会保留。

3)source script.sh
在父进程中运行程序,变量会保留。

test

测试命令

 test -e script.sh && echo "exist" || echo "not exist"
-e: 文件名是否存在
-f:  文件名是否存在且为file
-d: 文件名是否存在且为directory
-z string: 判断字符串是否为空
-r: 可读
-w:可写
-x:可执行

-a: and
-o: or
!: negative
test -r filename -a -w filename

还有使用[]来进行判断,注意空格!

# [空格。。。空格op空格。。。空格]
[ "$name" = "name" ]

file:说明一个文件的类型(是否可执行)

运行参数

$x (x = 1, 2, 3) 表示第几个参数
$0 第一个参数前的命令
$# 总参数个数
$* 所有参数都输出,默认以空格分割。
#! /bin/zsh

echo "$0"
echo "$#"
echo "$1"
echo "$*"

exit 0
./script.sh 1 2 3
./script.sh
3
1
1 2 3

条件判断

在[]中判断,

-eq: 相等
-ne: 不想的
-gt:大于
-lt:小于
-ge:大于等于
-le:小于等于
if [ $1 -eq 1 ]; then
    echo -e "1"
elif [ "$1" -gt "2" ]; then
    echo -e "2"
fi

case

case $1 in
        "one")
        echo "one"
        ;;
        "two")
                echo "two"
        ;;
esac

function

在函数中$1表示第一个参数,$2表示第二个参数,注意这里的$1和运行脚本的$1是不一样的。
function print() {
        echo -n "print $(($1 + 1))"
}

case $1 in
        "1")
                print 1
        ;;
        "2")
                print 2
        ;;
esac

循环的各种做法

#! /bin/zsh

age=10

while [ $age -lt 20 ]
do
    age=$(( age + 1 ))
done

echo "$age"

until [ $age -eq 25 ]
do
    age=$(( $age + 1))
done

echo "$age"

for animal in dog cat mouse
do
    echo "$animal"
done

for times in $(seq 1 100)
do
    echo "$times"
done

filelist=$(ls './')
for filename in $filelist
do
    echo "$filename"
done

for ((i=0;i <= 10; i = i + 1))
do
    echo "$i"
done

调试

-n:不执行,检查语法错误
-v: 在执行前,把内容输出
-x:将使用到的内容输出。
sh -n script.sh
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值