当前位置:首页 » 编程软件 » linux写脚本

linux写脚本

发布时间: 2022-01-16 14:04:35

linux如何编写shell脚本

  1. 一般以#!/bin/sh开头(不是必须要写,但一定要单独一行),指定执行这个脚本的shell程序(也可以用#!/bin/zsh或其他),然后就是堆命令了。

  2. Linux的shell脚本支持很多功能,加上Linux高度模块化的命令,完全可以用shell脚本写出复杂的程序。

  3. 以上只是简单介绍如何开始写shell脚本,如果要写复杂的脚本,还需要深入学习相关知识(如if——fi、case——esac等结构)。

  4. 当然,还需要给脚本加上可执行权限(chmod +x ./file.sh),否则可以用sh ./file.sh方式执行脚本(这里的sh是执行脚本所需shell,命令也可以是zsh ./file.sh或其他)。

  5. 整个shell脚本,其实就相当于你在终端输入的一系列命令,如果想在shell里做什么,就先想想在终端可以做什么吧,字符的的连接,就是直接用 "" 双引号,输出,变量定义无 $ 符号,但是使用时一定要加上 $ 符号。

  6. "=" 赋值符号,两边一定不能有空格,这和其他语言有区别,尤其是你还有自己代码美观风格时特别注意,否则会报语法错误!

  7. for 中的数组内容是以 " " 空格分隔,而非 "," 逗号分格。

  8. 条件判断 [ true ] 中括号 后面需要有一个空格,但是两个中括号之间不能有空格如 [[ true ]]。

  9. while 条件判断可以用 () 括号,也可以用 [[ ]] 中括号。

  10. 如果用windows写shell,一定要注意换行符格式 而非 , 需要借助一些编辑器(如notepad++)更改换行符格式!

Ⅱ 怎么编写一个linux脚本文件

Shell终端解释器形容是人与计算机硬件的“翻译官”,它作为用户与Linux系统内部通讯的媒介,除了允许了各种变量与参数外还提供了诸如循环、分支等高级语言才有的控制结构特性,如何正确的使用这些功能,准确下达命令就显得尤为重要。Shell中脚本命令的工作方式有两种,首先是咱们前面所接触的交互方式(Interactive),即当用户每输入一条命令就执行一次,而批处理(Batch)则是由用户事先编写好一个完整的Shell脚本,Shell会一次性执行脚本中诸多的命令。因此在Shell脚本中不仅需要用到很多前面学习过的Linux命令以及正则表达式、管道符、数据流重定向等语法规则,还需要将内部功能模块化后通过逻辑语句进行加工,最终才能成为咱们日常所见的Shell脚本程序。先来查看下系统中所有可用的Shell解释器:
[root@linuxprobe ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh

另外查看到bash已经是咱们目前的终端解释器了:
[root@linuxprobe ~]# echo $SHELL
/bin/bash

估计读者看完上面对Shell脚本如此复杂的描述都有一种心累想放弃的感觉了吧,但这仅指的是一个高深Shell脚本的编写原则,其实当咱们使用vim编辑器将linux命令按照顺序依次写入文件就是编写完成一个最简单的脚本啦。例如咱们想查看当前所在工作路径并列出当前目录下所有文件及属性信息,编写一个脚本来完成的话是这样:
[root@linuxprobe ~]# vim example.sh
#!/bin/bash
#For Example BY linuxprobe.com
pwd
ls -al

Shell脚本文件的名称是可以任意起,但为了避免其他同事误以为是普通文件,咱们应该符合运维行业人员大众的规范将.sh后缀写上,这样让其他人一看就知道是个脚本文件,与人方便自己方便。在这个脚本中实际上出现了三种不同的元素,第一行脚本声明(#!)是用来告知系统用何种shell解释器来执行本脚本程序,第二行注释信息(#)是对程序功能和某些命令的介绍信息,使得自己或他人再次看到这个脚本内容时可以快速知道这些功能的作用或一些警告信息,第三、四行可执行语句也就是咱们平时执行的Linux命令啦~什么?你不相信这么简单就编写出来了一个脚本程序,那咱们来执行看一看吧:
[root@linuxprobe ~]# bash example.sh
/root/Desktop
total 8
drwxr-xr-x. 2 root root 23 Jul 23 17:31 .
dr-xr-x---. 14 root root 4096 Jul 23 17:31 ..
-rwxr--r--. 1 root root 55 Jul 23 17:31 example.sh

第二种运行脚本程序的方法是以输入完整路径的方式来执行,但默认会因为权限不足而提示报错信息,这种情况只需要为脚本文件增加执行权限即可(在第五章会详细讲到):
[root@linuxprobe ~]# ./example.sh
bash: ./Example.sh: Permission denied
[root@linuxprobe ~]# chmod u+x example.sh
[root@linuxprobe ~]# ./example.sh
/root/Desktop
total 8
drwxr-xr-x. 2 root root 23 Jul 23 17:31 .
dr-xr-x---. 14 root root 4096 Jul 23 17:31 ..
-rwxr--r--. 1 root root 55 Jul 23 17:31 example.sh

这只是最简单的,你可以看下http://www.linuxprobe.com/chapter-04.html#42_Shell学习下shell脚本!

Ⅲ linux中shell写脚本

#!/bin/bash
while true;do
if [ "$#" -ne 1 ];
then
echo "Incorrect number of arguments"
exit 1
else
who| grep "^$1" >/dev/null 2>&1
if [ $? -eq 0 ]
then
echo "the user $1 has logged on。"
exit 0
fi
fi
sleep 60
done

Ⅳ 写个linux脚本

用awk或者sed应该更简单点吧

#!/bin/sh

MemSize=`free | grep Mem | awk '{print $4}'`
DiskSize=`disk -l | grep /dev | grep -v "/dev/shm" | awk '{print $4}'`

if [ "$Memsize" -lt "200000" ]; then
service httpd restart
fi

for i in ${DiskSize}; do
SumSize=$((SumSize+i))
done

if [ "$SumSize" -lt "4096000" ]; then
rm -rf /home/admin/*
rm -rf /var/log/kloxo/*
rm -rf /var/lig/mysql/*
rm -rf /mysqlDB_*
fi

exit 0

Ⅳ 如何写一个linux的工作脚本

请找 bash shell 编程的相关学习文章系统学习。

Ⅵ Linux shell脚本编写

根据你的提示,可以看出你应该

read-p"pleaseinputyourage:"age#age变量需要和前面提示有空格。

希望可以帮到你。

Ⅶ Linux编写简单的shell脚本

新建一个文件shell脚本一般用×.sh作为后缀当然勇气他的也可以。打开终端输入touch first.sh 新建一个名为first的shell脚本。
编写一个简单的linuxshell脚本

使用vim 编辑first.sh也可以用其他的文本编辑器,推荐使用vim

使用命令 vim first.sh打开,输入i进入编辑模式。
编写一个简单的linuxshell脚本

我们写入一个简单的shell脚本,注意第一行的代码解释器的指定,这里使用的是/bin/bash/ 解释器 也可用其他的根据个人情况自己选择。

脚本解释:

echo //显示一串字符并自动换行

read NAME //从屏幕获取一段字符,并赋予NAME

$NAME //取NAME变量的值

# //只用一个#表示注释文本
编写一个简单的linuxshell脚本

文件写完后按下esc键 退出插入模式,接着输入:wq 保存文本并退出文本编辑。
编写一个简单的linuxshell脚本

输入sh + 脚本名称 运行脚本,或给文件可运行权限 chmod +x 然后输入./first.sh运行脚本。
编写一个简单的linuxshell脚本
编写一个简单的linuxshell脚本

Ⅷ Linux编写一个Shell脚本

#!/bin/sh

#定义一个变量i并赋初值0;
i=0
#定义一个while循环结构,条件表达式为判断i值是否小于9,i为其计数器;
while test $i -lt 9
do
# 在循环结构内分别是三个if分支结构,分别判断i=0、i=1和i>1的情况;
# 如果i=0,输出i,并给 赋值( 用变量n代替);
if test $i -lt 1;then
n=$i
echo $n
#如果i=1,输出i,并给 赋值( 用变量m代替);
elif test $i -eq 1;then
m=$i
echo $m
#如果i>=1,计算m+n(即 + )的值赋给 ( 用变量v代替),输出v,
elif test $i -gt 1;then
v=`expr $m + $n`
echo $v
fi
i=`expr $i + 1`
done

热点内容
阿里云服务器外包 发布:2024-04-30 03:33:54 浏览:277
911标配的有哪些配置 发布:2024-04-30 03:18:38 浏览:159
如何访问阿里云服务器多个数据盘 发布:2024-04-30 03:08:45 浏览:187
ldd3源码 发布:2024-04-30 03:07:14 浏览:7
phpecho换行 发布:2024-04-30 02:21:51 浏览:904
高中ftp 发布:2024-04-30 01:51:48 浏览:873
林秋楠手机的密码是多少 发布:2024-04-30 01:46:31 浏览:276
python静态类方法 发布:2024-04-30 01:30:28 浏览:462
zblogphpasp 发布:2024-04-30 01:27:35 浏览:137
宏程序自动编程软件 发布:2024-04-30 01:15:01 浏览:417