如何写linux的sh脚本⽂件,如何编写简单的Shell脚本(Script)
⽂件之Linu。。。
如何编写简单的Shell脚本(Script)⽂件之Linux的基本操作
新建⼀个⽂本⽂件包含所需要的脚本。举例,我会使⽤pico编辑器写⼀个脚本⽤来运⾏程序tar,带上必要的可选项可以⽤来解压从因特⽹下载下来的*.tar的⽂件(我好像总是记不住tar的所有参赛)。滑动轴承 我决定把我的脚本名称叫做“untar”:
pico untar
因为在我的当前⼯作⽬录⾥untar⽂件不存在,所有pico⽂本编辑器⾃动创建这个⽂件,现在,我输⼊以下内容:
#!/bin/bash
echo this is the script file $0
echo untarring the file $1
# this calls tar with options -xvzf (extract,
# verbose, filter through gzip, input filename)
tar -xvzf $1
我使⽤O保存这个⽂件,然后X退出。
脚本的第⼀⾏,以“#!”开始是特别的提⽰-它告诉shell应该⽤哪⼀个程序来解释我的脚本。在这个例⼦⾥,我使⽤bash shell
/bin/bash。第⼀⾏必须使⽤“#!”开头,否则脚本不会运⾏(系统认为是⼀个⽂本⽂件)。⽔泥烟囱新建 其他以“#”开始的⾏是注释⾏只是给作者和读者使⽤的,计算机将跳过这些⾏。
在以上脚本⾥,参数$0, $1, $2…是传递到脚本⾥⾯的参数。举个例⼦,如果我运⾏我的脚本名“myscript”带七个参数如下:
myscript a b c d e f g
那么,参赛$0就是myscript, $1就是a, $2就是b,$3就是c,依此类推。
脚本的第⼆⾏和第三⾏,echo命令输出所有在它后⾯同⼀⾏上的⽂本,然后扩展在脚本⾥对应的参数$0和$1。第四⾏和第五⾏是我写的注释⽂本,提醒我在这个脚本⾥要做的事情。只有最后⼀⾏是真正起作⽤的。
⼀旦脚本已经写好,我把⽂件属性改成对⽂件拥有者是“可执⾏”的:
chmod u+x untar
然后我的脚本就可以这样运⾏了:
./untar my_
Liunx脚本的确⾮常丰富,灵活,功能强劲,还可能有点复杂。然⽽,对于⽇常任务编写⼀些简单脚本,它并不需要什么特别⾼深的知识。你可以把⼀些要⽤到的命令放在⼀起,⼀个接⼀个,输⼊到⽂件⾥。活动隔断 我使⽤脚本很频繁是因为我太懒了,不想⼀次⼀次的输⼊相同的命令。
⼀个最简单的⽅法,可以把⼀组命令放在⽂本⽂件⾥然后使⽤source命令传递给shell让它直接运⾏:
source my_file
这个时候就不需要在⽂本第⼀⾏加上“#!”的标志了。
3.4.6 引号的含义
⼀般来说,以下字符对于shell有特殊的含义:
\ ' " ` < > [ ] ? | ; # $ ^ & * ( ) =
这⾥有四种不同的符号:反斜杠(\),单引号(‘),双引号(“),反向单引号(`)。
反斜杠(\)表⽰:关闭后⾯字符的特殊含义
单引号(‘)表⽰:关闭在两个单引号之间所有字符的特殊含义
双引号(“)表⽰:关闭在两个双引号之间所有字符的特殊含义除了$ ` \
反向单引号(`)表⽰:告诉shell⾸先运⾏两个反向单引号之间的命令,⽣物醇油 然后把得到的结果再传递给两个单引号之外的命令。同样的功能也可以通过“$command”命令来实现,⽽且可能会更⽅便。
linux循环执行命令脚本举个例⼦,我可以创建⼀个奇怪的⽬录名叫做“*”通过使⽤“\”或者“’”符号:
mkdir \*
mkdir ’*’
这屏蔽了“*”对于shell的特别含义。如果没有“\”,“*”意味着当前⽬录下所有⽂件。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。