linux如何执行脚本_shell脚本赋予执行权限

linux如何执行脚本_shell脚本赋予执行权限shell脚本 shell脚本就是一些命令的集合 #!/bin/bash echo "文件开头代表:该文件使用的是bash语法" 一、运行.sh文件 方法一:当前文件执行.sh 文件 # 文件必须含有x执行权限 [文件赋x权限:chmod u+x hello.sh] ./test

shell脚本

  shell脚本就是一些命令的集合

#!/bin/bash 
echo "文件开头代表:该文件使用的是bash语法"

 

一、运行.sh文件

方法一:当前文件执行.sh 文件

# 文件必须含有x执行权限 [文件赋x权限:chmod u+x hello.sh]
./test.sh

# 文件可以没有x权限
sh test.sh

 

方法二:绝对路径执行.sh 文件

/home/test/test.sh

./home/test/test.sh

sh /home/test.test.sh 

 

查看运行过程

sh -x test.sh

 

  运行预览

  linux如何执行脚本_shell脚本赋予执行权限

 

二、脚本编写

 

实例1:输出内容到控制台

# test.sh内容

echo "test shtest"

  运行结果

  linux如何执行脚本_shell脚本赋予执行权限

 

实例2:变量格式: “变量名=变量的值”。当在脚本中引用变量时需要加上’$’符号或者“${变量}”

# 变量 var_name ;引用变量 $var_name
var_name="test.sh"

echo "test $var_name"

  执行结果  

  linux如何执行脚本_shell脚本赋予执行权限

 

实例3: 复制文件

# 变量 `date……` [`非单引号,而是反单引号]
var_name="test.sh"

echo "test $var_name"

cp /home/appuser/ntest/$var_name /home/appuser/cptest/`date "+%Y-%m-%d-%H:%M:%S"`--$var_name

  执行结果 

  linux如何执行脚本_shell脚本赋予执行权限

 

实例4:将执行命令的结果用作变量输出

# 变量
var_name="test.sh"
var_para=$(ls)

echo "test输出变量: $var_name"
echo "test输出执行命令的结果变量:${var_para}" 

   执行结果

   linux如何执行脚本_shell脚本赋予执行权限

 

实例5: 用户输入 表示in_name变量的值需要用户通过键盘输入得到

# 写法一:read -p 选项类似echo的作用
read -p "请输入您的名字:" in_name
echo "您输入的名称为:$in_name"

# 写法二:会存在换行输入
echo "请输入你的年龄:"
read in_age
echo "您输入的年龄是:$in_age"

 

  运行结果

  linux如何执行脚本_shell脚本赋予执行权限

 

 实例6: 当前时间为变量,创建文件

now_date=$(date "+%Y-%m-%d_%H:%M:%S")

echo "当前时间:$now_date"

# 批量创建文件
touch file{01..03}_$now_date.log
#touch ${now_date}_file{04..07}.log
linux如何执行脚本_shell脚本赋予执行权限
linux如何执行脚本_shell脚本赋予执行权限

# touchfile.sh  创建文件脚本

filename="$(date +%Y-%m-%d)"

echo "开始创建文件......"
touch ${filename}_file{01..09}.log
echo "创建成功"
echo "$(ls)

touchfile.sh

  运行结果

  linux如何执行脚本_shell脚本赋予执行权限

linux如何执行脚本_shell脚本赋予执行权限
linux如何执行脚本_shell脚本赋予执行权限

echo "开始创建文件......"
#touch ${filename}_file{01..09}.log
for i in `seq 1 5`;do
        filename="$(date +%Y-%m-%d_%H:%M:%S)"
        touch ${filename}_${i}_file.log
        sleep 2
done
echo "创建成功;目录下文件如下:"
echo "$(ls)"

以时间命名每隔2s创建1个文件

  运行结果

  linux如何执行脚本_shell脚本赋予执行权限

 

  

 实例7计算 数学计算要用’[ ]’括起来并且外头要带一个’$’

# 暂停2s
sleep 2
# 变量
a=1
b=3
# 计算a、b之和
sum=$[$a+$b]
echo "sum is $sum"

   运行结果

  linux如何执行脚本_shell脚本赋予执行权限

 

 实例8: 预设变量

# $1的值就是在执行的时候输入的1,而$2的值就是执行的时候输入的$2 $0代表文件名
echo "$0 $1 $2"

sum=$[$1+$2]
echo $sum

  运行结果

  linux如何执行脚本_shell脚本赋予执行权限

 

 实例9: 逻辑判断 if

linux如何执行脚本_shell脚本赋予执行权限
linux如何执行脚本_shell脚本赋予执行权限

if 判断语句; then
命令
elif 判断语句;then
命令
else
命令
fi

语法格式

# 不带else  ((nums<20))是因为.sh中,用一个小括号或者不用都会报错read -p "请输入数字:" numsif ((nums<20));then        echo "输入不能小于20"fi# 带elseread -p "请输入数字:" numsif ((nums<20));then        echo "输入不能小于20"else        echo "恭喜"fi
linux如何执行脚本_shell脚本赋予执行权限
linux如何执行脚本_shell脚本赋予执行权限

# 带elif  ;这里的 && 表示“并且”的意思,当然你也可以使用 || 表示“或者”
read -p "请输入数字:" nums

if ((nums<20));then
        echo "输入不能小于20"

elif ((nums>25))&&((nums<42));then
        echo "25==42"
else
        echo "恭喜"
fi

elif (())

linux如何执行脚本_shell脚本赋予执行权限
linux如何执行脚本_shell脚本赋予执行权限

## 注意:if判断时 除了可以用”(( ))”的形式外,还可以使用”[ ]”。但是就不能使用>, < , = 这样的符号了,要使用 -lt (小于),-gt (大于),-le (小于等于),-ge (大于等于),-eq (等于),-ne (不等于)
read -p "请输入数字:" nums

if [ $nums -lt 20 ];then
        echo "输入不能小于20"

elif [ $nums -gt 25 ] && [ $nums -lt 42 ];then
        echo "25==42"
else
        echo "恭喜"
fi

if else elif []

  运行结果

  linux如何执行脚本_shell脚本赋予执行权限

注释: -lt (小于),-gt (大于),-le (小于等于),-ge (大于等于),-eq (等于),-ne (不等于)

 

 实例10:判断文档属性

# 格式为: if [ -e filename ] ; then
# -e :判断文件或目录是否存在
if [ -e touchfile.sh ];then
    echo "touchfile.sh 文件存在"
fi

#-d :判断是不是目录,并是否存在
if [ -d touchfile.sh ];then
    echo "是目录"
else
    echo "touchfile.sh 不是目录"
fi

#-f :判断是否是普通文件,并存在
if [ -f touchfile.sh ];then
    echo "touchfile.sh 是普通文件"
fi

#-r :判断文档是否有读权限
if [ -r touchfile.sh ];then
    echo "touchfile.sh 有读权限"
fi

#-w :判断是否有写权限
if [ -w touchfile.sh ];then
    echo "touchfile.sh 有写权限"
fi

#-x :判断是否可执行
if [ -x touchfile.sh ];then
    echo "touchfile.sh 是可执行文件"
fi

   运行结果

  linux如何执行脚本_shell脚本赋予执行权限

 

实例11: 逻辑判断 case; 不限制value的个数(用于编写系统服务的启动脚本)

linux如何执行脚本_shell脚本赋予执行权限
linux如何执行脚本_shell脚本赋予执行权限

case 变量 in

value1)

command

;;

value2)

command

;;

value3)

command

;;

*)

command

;;

esac

语法格式

read -p "奇偶判断,请输入一个数值:" numsr=$[$nums%2]case $r in1)    echo "奇数"    ;;0)    echo "偶数"    ;;esac

  运行结果

  linux如何执行脚本_shell脚本赋予执行权限

 

实例12: for 循环

linux如何执行脚本_shell脚本赋予执行权限
linux如何执行脚本_shell脚本赋予执行权限

for 变量名 in 循环的条件; do

command

done

语法格式

# 脚本中的seq 1 5 表示从1到5的一个序列for i in `seq 1 5`;do    echo $idone

  运行结果

  linux如何执行脚本_shell脚本赋予执行权限

  

for i in `ls`; do echo $i; done 

#for i in `cat test.txt`; do echo $i; done

  运行结果

  linux如何执行脚本_shell脚本赋予执行权限

 

 

实例13: while 循环

linux如何执行脚本_shell脚本赋予执行权限
linux如何执行脚本_shell脚本赋予执行权限

while 条件; do

command

done

语法格式

linux如何执行脚本_shell脚本赋予执行权限
linux如何执行脚本_shell脚本赋予执行权限

while :; do

command

done

监控脚本

a=7while [ $a -ge 1];do    echo "$a"    a=$[$a-2]done

   运行结果

  linux如何执行脚本_shell脚本赋予执行权限

 

 

 实例14: 函数

linux如何执行脚本_shell脚本赋予执行权限
linux如何执行脚本_shell脚本赋予执行权限

# 函数
function 函数名() {

command

}

# 调用
函数名 $1 $2

# 执行
sh shread.sh value1 value2

函数格式

function sun(){        sum=$[$1 + $2]        echo $sum}sun $1 $2

  运行结果

  linux如何执行脚本_shell脚本赋予执行权限

 

 

 

 

 

 

 


 

拓展

问题1:变量未找到test.sh: line 2: var_name: command not found

问题原因:等号两遍的变量名和值 之间不能存在空格

linux如何执行脚本_shell脚本赋予执行权限

 

 

 

 


 

知识点:

 

 

# 查看日历

cal    # 查看当月日历

cal 2022 # 查看年份日历

 

  运行结果

  linux如何执行脚本_shell脚本赋予执行权限

   linux如何执行脚本_shell脚本赋予执行权限

 

 

# 输出重定向和追加数据

>:输出重定向,以覆盖的形式一个文件的内容写入到另一个文件

>>:追加:将文件的内容追加到另一个文件的末尾

语法:

    ls -l >文件        将列表的内容写入到文件(覆盖原有内容)

    ls -al >>文件        将列表的内容追加到文件的末尾

    cat 文件1 > 文件2        将文件1的内容写入到文件2中(覆盖后者文件的内容)

    echo "内容" >> 文件        将内容追加到文件中

 

今天的文章linux如何执行脚本_shell脚本赋予执行权限分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/53451.html

(0)
编程小号编程小号
上一篇 2023-08-30 14:11
下一篇 2023-08-30 14:30

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注