`
gaoyuntao2005
  • 浏览: 303408 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

学习 Shell Scripts (二)

阅读更多
用来『计算退伍日期还剩几天?』也就是说: 先让使用者输入他们的退伍日期; 再由现在日期比对退伍日期; 由两个日期的比较来显示『还需要几天』才能够退伍的字样。 似乎挺难的样子?其实也不会啦,利用『 date --date="YYYYMMDD" +%s 』就能够达到我们所想要的啰~如果您已经写完了程序,对照底下的写法试看看: [root@linux scripts]# vi sh10.sh #!/bin/bash # Program: # Tring to calculate your demobilization date at how many days # later... # History: # 2005/08/29 VBird First release PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH # 1. 告知使用者这支程序的用途,并且告知应该如何输入日期格式? echo "This program will try to calculate :" echo "How many days about your demobilization date..." read -p "Please input your demobilization date (YYYYMMDD ex>20050401): " date2 # 2. 测试一下,这个输入的内容是否正确?利用正规表示法啰~ date_d=`echo $date2 |grep '[0-9]\{8\}'` if [ "$date_d" == "" ]; then echo "You input the wrong format of date...." exit 1 fi # 3. 开始计算日期啰~ declare -i date_dem=`date --date="$date2" +%s` declare -i date_now=`date +%s` declare -i date_total_s=$(($date_dem-$date_now)) declare -i date_d=$(($date_total_s/60/60/24)) if [ "$date_total_s" -lt "0" ]; then echo "You had been demobilization before: " $((-1*$date_d)) " ago" else declare -i date_h=$(($(($date_total_s-$date_d*60*60*24))/60/60)) echo "You will be demobilized after $date_d days and $date_h hours." fi 瞧一瞧,这支程序可以帮您计算退伍日期呢~如果是已经退伍的朋友, 还可以知道已经退伍多久了~哈哈!很可爱吧~利用 date 算出自 1971/01/01 以来的总秒数, 再与目前的总秒数来比对,然后以一天的总秒数 (60*60*24) 为基数去计算总日数, 就能够得知两者的差异了~瞧~全部的动作都没有超出我们所学的范围吧~ ^_^ 还能够避免使用者输入错误的数字,所以多了一个正规表示法的判断式呢~ 这个例子比较难,有兴趣想要一探究竟的朋友,可以作一下课后练习题 关于计算生日的那一题喔!~加油! -------------------------------------------------------------------------------- 利用 case ..... esac 判断 上个小节提到的『 if .... then .... fi 』对于变量的判断中, 是以比对的方式来分辨的,如果符合状态就进行某些行为,并且透过较多层次 ( 就是 elif ... ) 的方式来进行多个变量的程序代码撰写,譬如 sh08.sh 那个小程序,就是用这样的方式来的啰。 好,那么万一我有多个既定的变量内容,例如 sh08.sh 当中,我所需要的变量就是 "hello" 及空字符串两个, 那么我只要针对这两个变量来设定状况就好了对吧?!那么可以使用什么方式来设计呢? 呵呵~就用 case ... in .... esac 吧~,他的语法如下: case $变量名称 in "第一个变量内容") 程序段 ;; "第二个变量内容") 程序段 ;; *) 不包含第一个变量内容与第二个变量内容的其它程序执行段 exit 1 ;; esac 要注意的是,这个语法是以 case 为开头,而以 esac 为结尾,啥?为何是 esac 呢?想一想,既然 if 的结尾是 fi ,那么 case 的结尾当然就是将 case 倒着写,自然就是 esac 啰~ ^_^,很好记吧~ 另外,每一个变量内容的程序段最后都需要两个分号 (;;) 来代表该程序段落的结束,这挺重要的喔! 至于为何需要有 * 这个变量内容在最后呢?这是因为,如果使用者不是输入变量内容一或二时, 我们可以告知使用者相关的信息啊!举例来说,我们如果将 sh08.sh 改写的话, 他应该会变成这样喔! [root@linux scripts]# vi sh08-2.sh #!/bin/bash # Program: # Show "Hello" from $1.... by using case .... esac # History: # 2005/08/29 VBird First release PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH case $1 in "hello") echo "Hello, how are you ?" ;; "") echo "You MUST input parameters, ex> $0 someword" ;; *) echo "Usage $0 {hello}" ;; esac 在上面这个 sh08-2.sh 的案例当中,如果你输入『 sh sh08-2.sh test 』来执行, 那么屏幕上就会出现『Usage sh08-2.sh {hello}』的字样,告知执行者仅能够使用 hello 喔~ 这样的方式对于需要某些固定字符串来执行的变量内容就显的更加的方便呢? 这种方式您真的要熟悉喔!这是因为系统的很多服务的启动 scripts 都是使用这种写法的, 举例来说,我们 Linux 的服务启动放置目录是在 /etc/init.d/ 当中,我已经知道里头有个 syslog 的服务,我想要重新启动这个服务,可以这样做: /etc/init.d/syslog restart 重点是那个 restart 啦~如果您进入 /etc/init.d/syslog 就会看到他使用的是 case 语法, 并且会规定某些既定的变量内容,你可以直接下达 /etc/init.d/syslog , 该 script 就会告知你有哪些后续接的变量可以使用啰~方便吧! ^_^ 一般来说,使用『 case $变量 in 』这个语法中,当中的那个 $变量 大致有两种取得的方式: 直接下达式:例如上面提到的,利用『 script.sh variable 』 的方式来直接给予 $1 这个变量的内容,这也是在 /etc/init.d 目录下大多数程序的设计方式。 交互式:透过 read 这个指令来让使用者输入变量的内容。 这么说或许您的感受性还不高,好,我们直接写个程序来玩玩:让使用者能够输入 one, two, three , 并且将使用者的变量显示到屏幕上,如果不是 one, two, three 时,就告知使用者仅有这三种选择。 [root@linux scripts]# vi sh11.sh #!/bin/bash # Program: # Let user input one, two, three and show in screen. # History: # 2005/08/29 VBird First release PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH echo "This program will print your selection !" # read -p "Input your choice: " choice # case $choice in case $1 in "one") echo "Your choice is ONE" ;; "two") echo "Your choice is TWO" ;; "three") echo "Your choice is THREE" ;; *) echo "Usage {one|two|three}" ;; esac 此时,您可以使用『 sh sh11.sh two 』的方式来下达指令,就可以收到相对应的响应了。 上面使用的是直接下达的方式,而如果使用的是交互式时,那么将上面第 10, 11 行的 "#" 拿掉, 并将 12 行加上批注 (#),就可以让使用者输入参数啰~这样是否很有趣啊?! -------------------------------------------------------------------------------- 利用 function 功能 什么是『函数 (function)』功能啊?简单的说,其实, 函数可以在 shell script 当中做出一个类似自订执行指令的东西,最大的功能是, 可以简化我们很多的程序代码~举例来说,上面的 sh11.sh 当中,每个输入结果 one, two, three 其实输出的内容都一样啊~那么我就可以使用 function 来简化了! function 的语法是这样的: function fname() { 程序段 } 那个 fname 就是我们的自订的执行指令名称~而程序段就是我们要他执行的内容了。 要注意的是,在 shell script 当中, function 的设定一定要在程序的最前面, 这样才能够在执行时被找到可用的程序段喔!好~我们将 sh11.sh 改写一下: [root@linux scripts]# vi sh11-2.sh #!/bin/bash # Program: # Let user input one, two, three and show in screen. # History: # 2005/08/29 VBird First release PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH function printit(){ echo -n "Your choice is " } echo "This program will print your selection !" case $1 in "one") printit; echo $1 | tr 'a-z' 'A-Z' ;; "two") printit; echo $1 | tr 'a-z' 'A-Z' ;; "three") printit; echo $1 | tr 'a-z' 'A-Z' ;; *) echo "Usage {one|two|three}" ;; esac 以上面的例子来说,我做了一个函数名称为 printif ,所以,当我在后续的程序段里面, 只要执行 printit 的话,就表示我的 shell script 要去执行『 function printit .... 』 里面的那几个程序段落啰! 当然啰,上面这个例子举得太简单了,所以您不会觉得 function 有什么好厉害的, 不过,如果某些程序代码一再地在 script 当中重复时,这个 function 可就重要的多啰~ 不但可以简化程序代码,而且可以做成类似『模块』的玩意儿,真的很棒啦! 另外, function 也是拥有内建变量的~他的内建变量与 shell script 很类似, 函数名称代表示 $0 ,而后续接的变量也是以 $1, $2... 来取代的~ 这里很容易搞错喔~因为『 function fname() { 程序段 } 』内的 $0, $1... 等等与 shell script 的 $0 是不同的。以上面 sh11-2.sh 来说,假如我下达:『 sh sh11-2.sh one 』 这表示在 shell script 内的 $1 为 "one" 这个字符串。但是在 printit() 内的 $1 则与这个 one 无关。 我们将上面的例子再次的改写一下,让您更清楚! [root@linux scripts]# vi sh11-3.sh #!/bin/bash # Program: # Let user input one, two, three and show in screen. # History: # 2005/08/29 VBird First release PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH function printit(){ echo "Your choice is $1" } echo "This program will print your selection !" case $1 in "one") printit 1 ;; "two") printit 2 ;; "three") printit 3 ;; *) echo "Usage {one|two|three}" ;; esac 在上面的例子当中,如果您输入『 sh sh11-3.sh one 』就会出现『 Your choice is 1 』的字样~ 为什么是 1 呢?因为在程序段落当中,我们是写了『 printit 1 』那个 1 就会成为 function 当中的 $1 喔~ 这样是否理解呢? function 本身其实比较困难一点,如果您还想要进行其它的撰写的话。 不过,我们仅是想要更加了解 shell script 而已,所以,这里看看即可~了解原理就好啰~ ^_^ -------------------------------------------------------------------------------- 循环 (loop) 除了 if...then...fi 这种条件判断式之外,循环可能是程序当中最重要的一环了~ 循环可以不断的执行某个程序段落,直到使用者设定的条件达成为止。 所以,重点是那个『条件的达成』是什么。底下我们就来谈一谈: -------------------------------------------------------------------------------- while do done, until do done 一般来说,循环最常见的就是底下这两种状态了: while [ condition ] do 程序段落 done 这种方式中, while 是『当....时』,所以,这种方式说的是『当 condition 条件成立时,就进行循环,直到 condition 的条件不成立才停止』的意思。 until [ condition ] do 程序段落 done 这种方式恰恰与 while 相反,它说的是『当 condition 条件成立时,就终止循环, 否则就持续进行循环的程序段。』是否刚好相反啊~我们以 while 来做个简单的练习好了。 假设我要让使用者输入 yes 或者是 YES 才结束程序的执行,否则就一直进行告知使用者输入字符串。 [root@linux scripts]# vi sh12.sh #!/bin/bash # Program: # Use loop to try find your input. # History: # 2005/08/29 VBird First release PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH while [ "$yn" != "yes" ] && [ "$yn" != "YES" ] do read -p "Please input yes/YES to stop this program: " yn done 上面这个例题的说明是『当 $yn 这个变量不是 "yes" 且 $yn 也不是 "YES" 时,才进行循环内的程序。』 而如果 $yn 是 "yes" 或 "YES" 时,就会离开循环啰~那如果使用 until 呢?呵呵有趣啰~ 他的条件会变成这样: [root@linux scripts]# vi sh12-2.sh #!/bin/bash # Program: # Use loop to try find your input. # History: # 2005/08/29 VBird First release PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH until [ "$yn" == "yes" ] || [ "$yn" == "YES" ] do read -p "Please input yes/YES to stop this program: " yn done 仔细比对一下这两个东西有啥不同喔! ^_^再来,如果我想要计算 1+2+3+....+100 这个数据呢? 利用循环啊~他是这样的: [root@linux scripts]# vi sh13.sh #!/bin/bash # Program: # Try to use loop to calculate the result "1+2+3...+100" # History: # 2005/08/29 VBird First release PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH s=0 i=0 while [ "$i" != "100" ] do i=$(($i+1)) s=$(($s+$i)) done echo "The result of '1+2+3+...+100' is ==> $s" 嘿嘿!当您执行了『 sh sh13.sh 』之后,就可以得到 5050 这个数据才对啊!这样瞭呼~ 那么让您自行做一下,如果想要让使用者自行输入一个数字,让程序由 1+2+... 直到您输入的数字为止, 该如何撰写呢?应该很简单吧?!答案可以参考一下习题练习里面的一题喔! -------------------------------------------------------------------------------- for...do....done 相对于 while, until 的循环方式是必须要『符合某个条件』的状态, for 这种语法,则是『 已经知道要进行几次循环』的状态!他的语法是: for (( 初始值; 限制值; 执行步阶 )) do 程序段 done 这种语法适合于数值方式的运算当中,在 for 后面的括号内的三串内容意义为: 初始值:某个变量在循环当中的起始值,直接以类似 i=1 设定好; 限制值:当变量的值在这个限制值的范围内,就继续进行循环。例如 i $s" 一样也是很简单吧!利用这个 for 则可以直接限制循环要进行几次呢!这么好用的东西难道只能在数值方面动作? 当然不是啦~我们还可以利用底下的方式来进行非数字方面的循环运作喔! for $var in con1 con2 con3 ... do 程序段 done 以上面的例子来说,这个 $var 的变量内容在循环工作时: 第一次循环时, $var 的内容为 con1 ; 第二次循环时, $var 的内容为 con2 ; 第三次循环时, $var 的内容为 con3 ; .... 我们可以做个简单的练习。假设我有三种动物,分别是 dog, cat, elephant 三种, 我想每一行都输出这样:『There are dogs...』之类的字样,则可以: [root@linux scripts]# vi sh15.sh #!/bin/bash # Program: # Using for .... loop to print 3 animal # History: # 2005/08/29 VBird First release PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH for animal in dog cat elephant do echo "There are ""$animal""s.... " done 很简单是吧! ^_^。好了,那么如果我想要让使用者输入某个目录, 然后我找出某目录内的文件名的权限呢?又该如何是好?呵呵!可以这样做啦~ [root@linux scripts]# vi sh16.sh #!/bin/bash # Program: # let user input a directory and find the whole file's permission. # History: # 2005/08/29 VBird First release PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH # 1. 先看看这个目录是否存在啊? read -p "Please input a directory: " dir if [ "$dir" == "" ] || [ ! -d "$dir" ]; then echo "The $dir is NOT exist in your system." exit 1 fi # 2. 开始测试档案啰~ filelist=`ls $dir` for filename in $filelist do perm="" test -r "$dir/$filename" && perm="$perm readable" test -w "$dir/$filename" && perm="$perm writable" test -x "$dir/$filename" && perm="$perm executable" echo "The file $dir/$filename's permission is $perm " done 呵呵!很有趣的例子吧~利用这种方式,您可以很轻易的来处理一些档案的特性呢~ 我们循环就介绍到这里了~其它更多的应用,就得视您的需求来玩啰~。 -------------------------------------------------------------------------------- shell script 的追踪与 debug scripts 在执行之前,最怕的就是出现问题了!那么我们如何 debug 呢?有没有办法不需要透过直接执行该 scripts 就可以来判断是否有问题呢!?呵呵! 当然是有的!我们就直接以 bash 的相关参数来进行判断吧! [root@linux ~]# sh [-nvx] scripts.sh 参数: -n :不要执行 script,仅查询语法的问题; -v :再执行 sccript 前,先将 scripts 的内容输出到屏幕上; -x :将使用到的 script 内容显示到屏幕上,这是很有用的参数! 范例: 范例一:测试 sh16.sh 有无语法的问题? [root@linux ~]# sh -n sh16.sh # 若语法没有问题,则不会显示任何信息! 范例二:将 sh15.sh 的执行过程全部列出来~ [root@linux ~]# sh -x sh15.sh + PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/home/vbird/bin + export PATH + for animal in dog cat elephant + echo 'There are dogs.... ' There are dogs.... + for animal in dog cat elephant + echo 'There are cats.... ' There are cats.... + for animal in dog cat elephant + echo 'There are elephants.... ' There are elephants.... # 使用 -x 真的是追踪 script 的好方法,他可以将所有有执行的程序段在执行前列出来, # 如果是程序段落,则输出时,最前面会加上 + 字号,表示他是程序代码而已, # 实际的输出则与 standard output 有关啊~如上所示。 在上面的范例二当中,我们可以透过这个简单的参数 -x 来达成 debug 的目的,这可是一个不可多得的参数, 通常如果您执行 script 却发生问题时,利用这个 -x 参数,就可以知道问题是发生在哪一行上面了! 熟悉 sh 的用法,将可以使您在管理 Linux 的过程中得心应手!至于在 Shell scripts 的学习方法上面,需要『多看、多模仿、并加以修改成自己的样式!』 是最快的学习手段了!网络上有相当多的朋友在开发一些相当有用的 scripts ,若是您可以将对方的 scripts 拿来,并且改成适合自己主机的样子!那么学习的效果会是最快的呢! 另外,我们 Linux 系统本来就有很多的启动 script ,如果您想要知道每个 script 所代表的功能是什么? 可以直接以 vi 进入该 script 去查阅一下,通常立刻就知道该 script 的目的了。 举例来说,我们的 Linux 里头有个文件名称为: /etc/init.d/portmap ,这个 script 是干嘛用的? 利用 vi 去查阅最前面的几行字,他出现如下信息: # description: The portmapper manages RPC connections, which are used by \ # protocols such as NFS and NIS. The portmap server must be \ # running on machines which act as servers for protocols which \ # make use of the RPC mechanism. # processname: portmap 简单的说,他是被用在 NFS 与 NIS 上面的一个启动 RPC 的 script , 然后我们再利用 http://www.google.com.tw 去搜寻一下 NFS, NIS 与 RPC , 立刻就能够知道这个 script 的功能啰~所以,下次您发现不明的 script 时, 如果是系统提供的,那么利用这个检查的方式,一定可以约略了解的啦! 加油的啰~ ^_^ 另外,本章所有的范例都可以在 http://linux.vbird.org/linux_basic/0340bashshell-scripts/scripts.tgz 里头找到喔!加油~ -------------------------------------------------------------------------------- 本章习题练习 ( 要看答案请将鼠标移动到『答:』底下的空白处,按下左键圈选空白处即可察看 ) 请建立一支 script ,当你执行该 script 的时候,该 script 可以显示: 1. 你目前的身份 (用 whoami ) 2. 你目前所在的目录 (用 pwd) #!/bin/bash echo -e "Your name is ==> `whoami`" echo -e "The current directory is ==> `pwd`" 请自行建立一支程序,该程序可以用来计算『您还有几天可以过生日』啊?? #!/bin/bash read -p "Pleas input your birthday (MMDD, ex> 0709): " bir now=`date +%m%d` if [ "$bir" == "$now" ]; then echo "Happy Birthday to you!!!" elif [ "$bir" -gt "$now" ]; then year=`date +%Y` total_d=$(($((`date --date="$year$bir" +%s`-`date +%s`))/60/60/24)) echo "Your birthday will be $total_d later" else year=$((`date +%Y`+1)) total_d=$(($((`date --date="$year$bir" +%s`-`date +%s`))/60/60/24)) echo "Your birthday will be $total_d later" fi 让使用者输入一个数字,程序可以由 1+2+3... 一直累加到使用者输入的数字为止。 #!/bin/bash read -p "Please input an integer number: " number i=0 s=0 while [ "$i" != "$number" ] do i=$(($i+1)) s=$(($s+$i)) done echo "the result of '1+2+3+...$number' is ==> $s" 撰写一支程序,他的作用是: 1.) 先查看一下 /root/test/logical 这个名称是否存在; 2.) 若不存在,则建立一个档案,使用 touch 来建立,建立完成后离开; 3.) 如果存在的话,判断该名称是否为档案,若为档案则将之删除后建立一个档案,档名为 logical ,之后离开; 4.) 如果存在的话,而且该名称为目录,则移除此目录! #!/bin/bash if [ ! -e logical ]; then touch logical echo "Just make a file logical" exit 1 elif [ -e logical ] && [ -f logical ]; then rm logical mkdir logical echo "remove file ==> logical" echo "and make directory logical" exit 1 elif [ -e logical ] && [ -d logical ]; then rm -rf logical echo "remove directory ==> logical" exit 1 else else echo "Does here have anything?" fi 我们知道 /etc/passwd 里面以 : 来分隔,第一栏为账号名称。请写一只程序,可以将 /etc/passwd 的第一栏取出,而且每一栏都以一行字符串『The 1 account is "root" 』来显示,那个 1 表示行数。 #!/bin/bash accounts=`cat /etc/passwd | cut -d':' -f1` for account in $accounts do declare -i i=$i+1 echo "The $i account is \"$account\" " done
分享到:
评论

相关推荐

    鸟哥学习Shell Scripts

    学习unix shell编程不错的材料。

    鸟哥的 Linux 私房菜第13章-学习 Shell Scripts1

    第十三章、学习 Shell Scripts最近更新日期:2009/02/18如果你真的很想要走信息这条路,并且想要好好的管理好属于你的主机,那么,别说鸟哥不告诉

    13_学习_Shell_Scripts

    鸟哥学习Linux系列 13_学习_Shell_Scripts

    Linux学习Shell Scripts(脚本)

    Shell Scripts是个自动管理系统软件的好工具,它可以简化我们日常工作管理,入侵检测呀,数据处理呀,而且很多服务都可以利用到它。它跨平台支持且学习历程短(不像程序语言那么难学哦)。   Contend 一、简单入门...

    Linux Shell Scripting Cookbook 3rd.pdf

    linux shell 脚本攻略 学习 shell script 脚本 经典 linux shell scripting cookbook

    shell_scripts

    通知频道: 赞赏码:特别声明:本仓库发布的脚本项目中涉及的任何解锁和解密分析脚本,仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性,准确,可以和有效,请根据情况自行判断。本项目内所有资源文件,...

    Linux操作系统学习

    第0章 计算机概论 第1章 Linux是什么 第2章 Linux 如何学习 第3章 主机规划与磁盘分区 第4章 安装Centos5.x 与多重引导小技巧 第5章 首次登入与在线求助(man page) ...第13章 学习Shell Scripts ........

    Bash-shell-scripts:Linux Shell脚本-快速参考示例任务

    Linux Shell脚本-快速参考示例任务 更多学习-乐于助人 对于所有脚本,在运行它们之前,请确保已通过运行以下sudo chmod +x script_name添加了执行权限: sudo chmod +x script_name 列出监听端口的udp和tcp协议脚本...

    Linux基础-shell Script

    1. 什么是Shell Scripts 什么是shell Scripts(程序化脚本)呢?就是字面的意义,我们把它分为两个部分。在shell部分,我们在BASH中已经提过了,那是一个文字接口底下让我们与系统沟通的一个工具接口。那么Scripts是...

    Linux13章1

    第十三章学习 Shell Scripts1、shell script 程序化脚本这个程序是使用纯文本文件,将一些 shell 的语法和指令(含外部指令)写在里面

    ubuntu-scripts

    外壳脚本 Shell脚本是一个文本文件,其中包含针对基于UNIX的... 与其他编程语言相比,为Shell脚本编写代码也更快,并且所需的学习时间也更少。 Shell脚本的缺点 但是,如果Shell脚本中有错误,则不加注意可能会造成极大

    LinuxBashShellScriptForOps:用于 Ops 和 Devops 的 Linux Bash Shell 脚本和 Python 脚本

    Linux Bash Shell Scripts For Ops, some python scripts here also. 这是一个怎样的项目 此项目是对在Linux运维工作所能用到的Shell脚本和Python脚本的归纳和总结。 大部分源码均出自生产系统并经过比较严谨的测试...

    Java/JavaEE 学习笔记

    八、Shell scripts:脚本编程.................28 Core Java学习笔记...........31 第一章 JAVA前言..31 第二章 标识符,关键字,类型........35 第三章 表达式与流控制....................41 第四章 数组............

    groovy2.4.3

    Goovy拥有处理原生类型,面向对象以及一个Ant DSL,使得创建Shell Scripts变的非常简单。 在开发Web,GUI,数据库或控制台程序时 通过减少框架性代码 大大提高了开发者的效率。 支持单元测试和模拟(对象),可以...

    learn-scripts:该存储库用于学习脚本或用法参考

    学习脚本 概述 该存储库用于学习脚本或快速参考。 此处介绍的脚本包括基本语法和基本用法。 以及一些执行的文档样本输出。 如果经常使用,还将添加一些特定区域的用法。 壳 要使用VS Code扩展代码运行器运行shell...

    linlin基础指令

    linux之shell scripts (类似dos之批次檔) 例:制做类似dos之diskcopy外部指令 文件名称:diskcopy #!/bin/sh echo -n "Insert source disk in first floppy drive,then hit enter" read ans; dd if=/dev/fd0 of=/...

    nice-bash-scripts:我为娱乐和学习而创建的一些bash脚本!

    好吧,根据GNU工程,bash(Bourne-Again Shell的缩写)是GNU的shell,它融合了Korn shell和C shell的功能,为编程和交互式使用提供了改进。 (2020年,自由软件基金会)。 对你们来说只是一个很小的好奇心部分。 ...

    Beginning the Linux Command Line, 2nd edition---2015.pdf

    Learn how to put the command line to work to manage f les, administer users and groups, install new sof ware, run network services, and create basic shell scripts.

    J2EE学习笔记(J2ee初学者必备手册)

    八、Shell scripts:脚本编程.................28 Core Java学习笔记...........31 第一章 JAVA前言..31 第二章 标识符,关键字,类型........35 第三章 表达式与流控制....................41 第四章 数组.............

Global site tag (gtag.js) - Google Analytics