当前位置: 首页 > news >正文

郑州网站建设搜索优化有趣的wordpress插件

郑州网站建设搜索优化,有趣的wordpress插件,免费行情软件app,网站照片如何处理*** 一#xff0c;shell教程 Shell 是一个用 C 语言编写的程序#xff0c;它是用户使用 Linux 的桥梁。Shell 既是一种命令语言#xff0c;又是一种程序设计语言 二#xff0c;shell环境 跟 JavaScript、php 编程一样#xff0c;只要有一个能编写代码的文本编辑器和一…*** 一shell教程 Shell 是一个用 C 语言编写的程序它是用户使用 Linux 的桥梁。Shell 既是一种命令语言又是一种程序设计语言 二shell环境 跟 JavaScript、php 编程一样只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。 Linux 的 Shell 种类众多常见的有 Bourne Shell/usr/bin/sh或/bin/sh Bourne Again Shell/bin/bash C Shell/usr/bin/csh K Shell/usr/bin/ksh Shell for Root/sbin/sh …… #! 告诉系统其后路径所指定的程序即是解释此脚本文件的 Shell 程序。 扩展名并不影响脚本执行见名知意就好如果你用 php 写 shell 脚本扩展名就用 php 好了。 运行shell脚本有两种方法 1作为可执行程序chmod x ./test.sh #使脚本具有执行权限./test.sh #执行脚本 2作为解释器参数/bin/sh test.sh/bin/php test.php三shell变量 注意变量名和等号之间不能有空格1命名只能用英文字母数字和下划线首个字符不能以数字开头2中间不能有空格3不能用标点符号4不能使用bash里的关键字可用help命令查看保留关键字除了显示赋值还可用语句赋值如 for file in ls /etc 或 for file in $(ls /etc) 以上语句将/etc下目录的文件循环出来1使用变量echo xxx 2,只读变量readonly xxx 3,删除变量unset variable_name #不能删除只读变量变量类型 运行shell时存在三种变量1局部变量:只在当前shell实例中有效2环境变量所有程序包括shell启动的程序3shell变量由shell程序设置的特殊变量。四shell字符串 单引号任何字符都会原样输出不会输出变量不能出现一个单一的单引号但可以成对出现作字符串拼接使用。双引号可以使用转义字符可以有变量1拼接字符串#使用双引号拼接 your_namerunb greetinghello, $your_name ! greeting_1hello, ${your_name} ! echo $greeting $greeting_1#使用单引号拼接 greeting_2hello, $your_name ! greeting_3hello, ${your_name} !#结果 hello, runoob ! hello, runoob ! hello, runoob ! hello, ${your_name} !2获取字符串长度stringabcdecho ${#string} #输出43提取子字符串截取第二个字节后的4个字符echo ${string:1:4}#第一个索引是04查找子字符串查找字符i或字符o的位置哪个先出现就计算那个stringrunoob isecho expr index $string io #输出 4 ,反引号不是单引号五Shell数组 bash支持一维数组不支持多维并且没有限定数组的大小 类似于C语言数据元素下标从0开始编号 通过下标获取数组中的元素下标可以是整数或算术表达式值大于或等于01定义数组用表示数组数组元素用“空格”符号分割开定义数组的一般形式为数组名(值1 值2 ... 值n)还可以单独定义数组array_name[0]value0array_name[1]value1#下标没有限制初始化时不需要定义数组大小和php一样2读取数组格式${数组名[下标]}echo ${array_name[]}# 符号可以获取数组中的所有元素3获取数组长度#取数组元素的个数length${#array_name[]}#或者length${#array_name[*]}#取得数组单个元素的长度length${#array_name[n]}4注释单行# #开头不能有其他字符多行 末行开头不能有空格:EOF注释内容...注释内容...注释内容...EOF 六shell传递参数 有几个特殊字符用来处理参数参数处理 说明 $# 传递到脚本的参数个数 $* 以一个单字符串显示所有向脚本传递的参数。#如$*用「」括起来的情况、以$1 $2 … $n的形式输出所有参数。 $$ 脚本运行的当前进程ID号 $! 后台运行的最后一个进程的ID号 $ 与$*相同但是使用时加引号并在引号中返回每个参数。#如$用「」括起来的情况、以$1 $2 … $n 的形式输出所有参数。 $- 显示Shell使用的当前选项与set命令功能相同。 $? 显示最后命令的退出状态。0表示没有错误其他任何值表明有错误。例 #!/bin/bashecho Shell 传递参数实例echo 第一个参数为$1echo 参数个数为$#echo 传递的参数作为一个字符串显示$* ma_hongbaojiguang-X10SAE:~$ ./test.sh 1 2 3Shell 传递参数实例第一个参数为1参数个数为3传递的参数作为一个字符串显示1 2 3$* 与 $ 区别相同点都是引用所有参数。不同点只有在双引号中体现出来。假设在脚本运行时写了三个参数 1、2、3则 * 等价于 1 2 3传递了一个参数而 等价于 1 2 3传递了三个参数。#!/bin/bash# author:菜鸟教程# url:www.runoob.comecho -- \$* 演示 ---for i in $*; doecho $idoneecho -- \$ 演示 ---for i in $; doecho $idone 执行脚本输出结果如下所示$ chmod x test.sh $ ./test.sh 1 2 3-- $* 演示 ---1 2 3-- $ 演示 ---123 七运算符算数关系布尔字符串文件测试运算符 原生bash不支持简单的数学运算但可以通过其他命令实现如awk和expr expr最常用它是一款表达式求值操作要使用反引号而不是单引号两点注意表达式和运算符之间要有空格例如 22 是不对的必须写成 2 2这与我们熟悉的大多数编程语言不一样。 完整的表达式要被 包含注意这个字符不是常用的单引号在 Esc 键下边。1算数运算符 运算符 说明 举例 加法 expr $a $b 结果为 30。- 减法 expr $a - $b 结果为 -10。* 乘法 expr $a \* $b 结果为 200。/ 除法 expr $b / $a 结果为 2。% 取余 expr $b % $a 结果为 0。 赋值 a$b 将把变量 b 的值赋给 a。 相等。用于比较两个数字相同则返回 true。 [ $a $b ] 返回 false。! 不相等。用于比较两个数字不相同则返回 true。 [ $a ! $b ] 返回 true。 a10b20if [ $a ! $b ]thenecho $a ! $b : a 不等于 belseecho $a $b: a 等于 bfiif [ $a -lt 100 -a $b -gt 15 ]thenecho $a 小于 100 且 $b 大于 15 : 返回 trueelseecho $a 小于 100 且 $b 大于 15 : 返回 falsefiif [ $a -lt 100 -o $b -gt 100 ]thenecho $a 小于 100 或 $b 大于 100 : 返回 trueelseecho $a 小于 100 或 $b 大于 100 : 返回 falsefiif [ $a -lt 5 -o $b -gt 100 ]thenecho $a 小于 5 或 $b 大于 100 : 返回 trueelseecho $a 小于 5 或 $b 大于 100 : 返回 falsefi注意1条件表达式要放在方括号之间并且要有空格例如: [$a$b] 是错误的必须写成 [ $a $b ]。 2乘号(*)前边必须加反斜杠(\)才能实现乘法运算3if...then...fi 是条件语句后续将会讲解。4在 MAC 中 shell 的 expr 语法是$((表达式)),此处表达式中的 * 不需要转义符 \ 2关系运算符 关系运算符只支持数字不支持字符串除非字符串的值是数字。下表列出了常用的关系运算符假定变量 a 为 10变量 b 为 20运算符 说明 举例-eq 检测两个数是否相等相等返回 true。 [ $a -eq $b ] 返回 false。-ne 检测两个数是否不相等不相等返回 true。 [ $a -ne $b ] 返回 true。-gt 检测左边的数是否大于右边的如果是则返回 true。 [ $a -gt $b ] 返回 false。-lt 检测左边的数是否小于右边的如果是则返回 true。 [ $a -lt $b ] 返回 true。-ge 检测左边的数是否大于等于右边的如果是则返回 true。 [ $a -ge $b ] 返回 false。-le 检测左边的数是否小于等于右边的如果是则返回 true。 [ $a -le $b ] 返回 true。 3bool运算符 非运算符 [ ! false ]返回true-o 或运算符 [ $a -lt 20 -o $b -gt 100 ]有一个对的就返回true-a 与运算符 [ $a -lt 20 -o $b -gt 100 ]两个对的才返回true4逻辑运算符 逻辑的AND [[ $a -lt 100 $b -gt 100 ]]返回false|| 逻辑的OR [[ $a -lt 100 $b -gt 100 ]]返回true5字符串运算符 字符串相等的话返回true [ $a $b ]! 不相等就返回true-z 检测字符串长度是否为0为0返回true [ -z $a ] -n 检测字符串长度不为0 [ -n $a ]$ 检测字符串是否为空不为空返回true [ $a ]6文件测试运算符-b file 检测文件是否是块设备文件如果是则返回 true。 [ -b $file ] 返回 false。-c file 检测文件是否是字符设备文件如果是则返回 true。 [ -c $file ] 返回 false。-d file 检测文件是否是目录如果是则返回 true。 [ -d $file ] 返回 false。-f file 检测文件是否是普通文件既不是目录也不是设备文件如果是则返回 true。 [ -f $file ] 返回 true。-g file 检测文件是否设置了 SGID 位如果是则返回 true。 [ -g $file ] 返回 false。-k file 检测文件是否设置了粘着位(Sticky Bit)如果是则返回 true。 [ -k $file ] 返回 false。-p file 检测文件是否是有名管道如果是则返回 true。 [ -p $file ] 返回 false。-u file 检测文件是否设置了 SUID 位如果是则返回 true。 [ -u $file ] 返回 false。-r file 检测文件是否可读如果是则返回 true。 [ -r $file ] 返回 true。-w file 检测文件是否可写如果是则返回 true。 [ -w $file ] 返回 true。-x file 检测文件是否可执行如果是则返回 true。 [ -x $file ] 返回 true。-s file 检测文件是否为空文件大小是否大于0不为空返回 true。 [ -s $file ] 返回 true。-e file 检测文件包括目录是否存在如果是则返回 true。 [ -e $file ] 返回 true。其他检查符-S: 判断某文件是否 socket。-L: 检测文件是否存在并且是一个符号链接。 八Shell echo命令 1显示普通字符串加不加双引号无所谓2显示转义字符同样可以不加双引号3显示变量read命令从标准输入中读取一行并把输入行的每个字段的值指定给shell变量#!/bin/shread name echo $name It is a test 以上代码保存为 test.shname 接收标准输入的变量结果将是:[rootwww ~]# sh test.shOK #标准输入OK It is a test #输出 4显示换行echo -e OK! \n\It is a test\ # -e 开启转义输出结果OK! It is a test5显示不换行#!/bin/shecho -e OK! \c # -e 开启转义 \c 不换行echo It is a test输出结果OK! It is a test6显示结果定向至文件echo It is a test myfile7原样输出字符串(必须单引号)不进行转义或者取变量echo $name\8显示命令执行结果echo date #结果是当前日期九Shell printf命令 shell的另一个输出命令printf命令是模仿C程序库的printf()程序。printf 由 POSIX 标准所定义因此使用 printf 的脚本比使用 echo 移植性好。printf 使用引用文本或空格分隔的参数外面可以在 printf 中使用格式化字符串还可以制定字符串的宽度、左右对齐方式等。默认 printf 不会像 echo 自动添加换行符我们可以手动添加 \n。printf 命令的语法printf format-string [arguments...]参数说明format-string: 为格式控制字符串arguments: 为参数列表。实例如下$ echo Hello, ShellHello, Shell$ printf Hello, Shell\nHello, Shell$接下来,我来用一个脚本来体现printf的强大功能#!/bin/bashprintf %-10s %-8s %-4s\n 姓名 性别 体重kg printf %-10s %-8s %-4.2f\n 郭靖 男 66.1234 printf %-10s %-8s %-4.2f\n 杨过 男 48.6543 printf %-10s %-8s %-4.2f\n 郭芙 女 47.9876 执行脚本输出结果如下所示姓名 性别 体重kg郭靖 男 66.12杨过 男 48.65郭芙 女 47.99%s %c %d %f都是格式替代符%-10s 指一个宽度为10个字符-表示左对齐没有则表示右对齐任何字符都会被显示在10个字符宽的字符内如果不足则自动以空格填充超过也会将内容全部显示出来。%-4.2f 指格式化为小数其中.2指保留2位小数。更多实例#!/bin/bash# format-string为双引号printf %d %s\n 1 abc# 单引号与双引号效果一样 printf %d %s\n 1 abc # 没有引号也可以输出printf %s abcdef #格式只指定了一个参数但多出的参数仍然会按照该格式输出format-string被重用printf %s abc defprintf %s\n abc defprintf %s %s %s\n a b c d e f g h i j# 如果没有 arguments那么 %s 用NULL代替%d 用 0 代替printf %s and %d \n 执行脚本输出结果如下所示1 abc1 abcabcdefabcdefabcdefa b cd e fg h ij and 0printf的转义序列序列 说明\a 警告字符通常为ASCII的BEL字符\b 后退\c 抑制不显示输出结果中任何结尾的换行字符只在%b格式指示符控制下的参数字符串中有效而且任何留在参数里的字符、任何接下来的参数以及任何留在格式字符串中的字符都被忽略\f 换页formfeed\n 换行\r 回车Carriage return\t 水平制表符\v 垂直制表符\\ 一个字面上的反斜杠字符\ddd 表示1到3位数八进制值的字符。仅在格式字符串中有效\0ddd 表示1到3位的八进制值字符实例$ printf a string, no processing:%s\n A\nBa string, no processing:A\nB$ printf a string, no processing:%b\n A\nBa string, no processing:AB$ printf www.runoob.com \awww.runoob.com $ #不换行 十shell test命令 用于检查某个条件是否成立它可以进行数值字符和文件三方面测试1数值测试-eq 等于则为真-ne 不等于-gt 大于-ge 大于等于-lt 小于则-le 小于等于实例num1100num2100if test $[num1] -eq $[num2]thenecho 两个数相等elseecho 两个数不相等fi输出结果两个数相等 代码中的 [] 执行基本的算数运算如实例#!/bin/basha5b6result$[ab] # 注意等号两边不能有空格echo result 为 $result结果为:result 为 11 2字符串测试参数 说明 等于则为真! 不相等则为真-z 字符串 字符串的长度为零则为真-n 字符串 字符串的长度不为零则为真实例num1ru1noobnum2runoobif test $num1 $num2thenecho 两个字符串相等!elseecho 两个字符串不相等!fi输出结果两个字符串不相等! 3文件测试参数 说明-e 文件名 如果文件存在则为真-r 文件名 如果文件存在且可读则为真-w 文件名 如果文件存在且可写则为真-x 文件名 如果文件存在且可执行则为真-s 文件名 如果文件存在且至少有一个字符则为真-d 文件名 如果文件存在且为目录则为真-f 文件名 如果文件存在且为普通文件则为真-c 文件名 如果文件存在且为字符型特殊文件则为真-b 文件名 如果文件存在且为块特殊文件则为真实例cd /binif test -e ./bashthenecho 文件已存在!elseecho 文件不存在!fi输出结果文件已存在! 另外Shell 还提供了与( -a )、或( -o )、非( ! )三个逻辑操作符用于将测试条件连接起来其优先级为 ! 最高 -a 次之 -o 最低。例如实例cd /binif test -e ./notFile -o -e ./bashthenecho 至少有一个文件存在!elseecho 两个文件都不存在fi输出结果至少有一个文件存在!十一Shell 流程控制 和java,php等语言不一样sh的流程控制不可为空如 实例?phpif(isset($_GET[q])){search(q);}else{//不做任何事情}在sh/bash里可不能这么写如果else分支没有语句执行就不要写这个else。1if else语句if 语句语法格式if conditionthencommand1 command2...commandN fi写成一行适用于终端命令提示符if [ $(ps -ef | grep -c ssh) -gt 1 ]; then echo true; fi末尾的fi就是if倒过来拼写后面还会遇到类似的。if else 语法格式if conditionthencommand1 command2...commandNelsecommandfiif else-if else 语法格式if condition1thencommand1elif condition2 then command2elsecommandNfi 实例:a10b20if [ $a $b ]thenecho a 等于 belif [ $a -gt $b ]thenecho a 大于 belif [ $a -lt $b ]thenecho a 小于 belseecho 没有符合的条件fi输出结果a 小于 b 2for循环格式for var in item1 item2 ... itemNdo command1command2...commandNdone写成一行for var in item1 item2 ... itemN; do command1; command2...done当变量值在列表里for循环即执行一次所有命令使用变量名获取列表中的当前取值。命令可为任何有效的shell命令和语句in列表可以包含替换字符串和文件名。in列表是可选的如果不用它for循环使用命令行的位置参数。例如顺序输出当前列表中的数字实例for loop in 1 2 3 4 5do echo The value is: $loopdone输出结果The value is: 1The value is: 2The value is: 3The value is: 4The value is: 5顺序输出字符串中的字符for str in This is a stringdo echo $strdone输出结果This is a string3while 语句while循环用于不断执行一系列命令也用于从输入文件中读取数据命令通常为测试条件。其格式为while conditiondo commanddone例子测试条件是如果int小于等于5那么条件返回真int从0开始每次循环处理时int 加1。运行上述脚本返回数字1~5然后终止#!/bin/bashint1while(( $int5 ))do echo $intlet intdone运行脚本输出12345以上实例使用了bash let命令它用于执行一个或多个表达式变量计算中不需要加上$ 来表示变量while循环可以读取键盘信息下面例子中输入信息被设置为变量FILM按Ctrl-D结束循环。实例echo 按下CTRL-D退出echo -n 输入你最喜欢的水果名while read FRUITdoecho 是的$FRUIT 好吃done无限循环while :do commanddone或者while truedocommanddone或for(( ; ; ))4Until循环until循环执行一系列命令直至条件为true时刚好停止until循环与while循环在处理方式上刚好相反一般while循环优先于until循环但某些时候也只是极少数情况下until循环更加有用。until语法格式until conditiondo commanddonecondition一般为条件表达式如果返回值为false,继续执行循环体内的语句否则跳出循环以下实例我们使用until命令来输出0~9的数字实例#bin/basha0until [ ! $a -lt 10 ]do echo $aaexpr $a 1done5caseShell case语句为多选语句可以用case语句匹配一个值与一个模式如果匹配成功则执行相匹配的命令。case命令格式如下case 值 in 模式1)command1command2...commandN;;模式2)command1....;;esaccase的工作方式如上所示。取值后必须为单词n,每一帧必须以右括号结束。取值可以为变量或常数。匹配发现取值符合某一模式后其间所有命令开始执行至;;表示执行结束跳出整个case...esac 语句取值将检测匹配的每一个模式。一旦模式匹配则执行完匹配模式相应命令后不再继续其他模式如果无一匹配模式使用星号*捕获该值再执行后面的命令。siterunoobcase $site inrunoob) echo 菜鸟教程;;google) echo Google 搜索;;taobao) echo 淘宝网;;esac下面的代码提示输出1到4与每一种模式进行匹配:echo 输入 1 到 4 之间的数字echo 你输入的数字为read aNumcase $aNum in1) echo 你选择了1;;2) echo 你选择了2;;*) echo 你没有输入1到4之间的数字esac6跳出循环未达到循环结束条件时强制跳出循环Shell使用两个命令来实现该功能:break和continue#break允许跳出所有的循环终止执行后面的所有循环例while :do echo -n 输入 1 到 5 之间的数字read aNumcase $aNum in1|2|3|4|5) echo 你输入的数字为 $aNum!;;*) echo 你输入的数字不是 1 到 5 之间的!游戏结束break;;esacdone#continue与break命令类似只有一点差别它不会跳出所有循环仅仅跳出当前循环(进入下一回合循环)例while : do echo -n 输入 1 到 5 之间的数字read aNumcase $aNum in1|2|3|4|5) echo 你输入的数字为$aNum!;;*) echo 你输入的数字不是1 到5 之间的continueecho 游戏结束;;esacdone永远都不会执行游戏结束#for通常情况下 shell 变量调用需要加 $,但是 for 的 (()) 中不需要,下面来看一个例子#!/bin/bashfor((i1;i5;i));doecho 这是第 $i 次调用;done;执行结果这是第1次调用这是第2次调用这是第3次调用这是第4次调用这是第5次调用与 C 中相似赋值和下一步执行可以放到代码之前循环语句之中执行这里要注意一点如果要在循环体中进行 for 中的 next 操作记得变量要加 $不然程序会变成死循环。 十二Shell函数 linux shell可以用户定义函数然后在shell脚本中可以随便调用 shell中函数的定义格式如下[ function ] funname [()]{action;[return int;]} 说明1可以带function fun()定义也可以直接func()定义不带任何参数。2参数返回可以显示加return返回如果不加将以最后一条命令运行结果作为返回值。return后跟数值n(0-255)例一demoFun(){echo 这是我的第一个 shell 函数!}echo -----函数开始执行-----demoFunecho -----函数执行完毕----- 输出结果-----函数开始执行-----这是我的第一个 shell 函数!-----函数执行完毕----- 例二funWithReturn(){echo 这个函数会对输入的两个数字进行相加运算...echo 输入第一个数字: read aNumecho 输入第二个数字: read anotherNumecho 两个数字分别为 $aNum 和 $anotherNum !return $(($aNum$anotherNum))}funWithReturnecho 输入的两个数字之和为 $? !输出类似下面这个函数会对输入的两个数字进行相加运算...输入第一个数字: 1输入第二个数字: 2两个数字分别为 1 和 2 !输入的两个数字之和为 3 ! 函数返回值在调用该函数后通过 $? 来获得。注意所有函数在使用前必须定义。这意味着必须将函数放在脚本开始部分直至shell解释器首次发现它时才可以使用。调用函数仅使用其函数名即可。 十三函数参数 在Shell中调用函数时可以向其传递参数。在函数体内部通过 $n 的形式来获取参数的值例如$1表示第一个参数$2表示第二个参数...带参数的函数示例 #!/bin/bash funWithParam(){echo 第一个参数为 $1 !echo 第二个参数为 $2 !echo 第十个参数为 $10 !echo 第十个参数为 ${10} !echo 第十一个参数为 ${11} !echo 参数总数有 $# 个!echo 作为一个字符串输出所有参数 $* ! } funWithParam 1 2 3 4 5 6 7 8 9 34 73输出结果 第一个参数为 1 ! 第二个参数为 2 ! 第十个参数为 10 ! 第十个参数为 34 ! 第十一个参数为 73 ! 参数总数有 11 个! 作为一个字符串输出所有参数 1 2 3 4 5 6 7 8 9 34 73 ! 注意$10 不能获取第十个参数获取第十个参数需要${10}。当n10时需要使用${n}来获取参数。 另外还有几个特殊字符用来处理参数参数处理 说明 $# 传递到脚本或函数的参数个数 $* 以一个单字符串显示所有向脚本传递的参数 $$ 脚本运行的当前进程ID号 $! 后台运行的最后一个进程的ID号 $ 与$*相同但是使用时加引号并在引号中返回每个参数。 $- 显示Shell使用的当前选项与set命令功能相同。 $? 显示最后命令的退出状态。0表示没有错误其他任何值表明有错误。 十四Shell输入输出重定向 重定向命令列表如下命令 说明 command file 将输出重定向到 file。 command file 将输入重定向到 file。 command file 将输出以追加的方式重定向到 file。 n file 将文件描述符为 n 的文件重定向到 file。 n file 将文件描述符为 n 的文件以追加的方式重定向到 file。 n m 将输出文件 m 和 n 合并。 n m 将输入文件 m 和 n 合并。 tag 将开始标记 tag 和结束标记 tag 之间的内容作为输入。需要注意的是文件描述符 0 通常是标准输入STDIN1 是标准输出STDOUT2 是标准错误输出STDERR。输出重定向实例$ who users 执行后并没有在终端输出信息这是因为输出已被从默认的标准输出设备终端重定向到指定的文件。你可以使用 cat 命令查看文件内容$ cat users_mbsetupuser console Oct 31 17:35 tianqixin console Oct 31 17:35 tianqixin ttys000 Dec 1 11:33 输出重定向会覆盖文件内容请看下面的例子$ echo 菜鸟教程www.runoob.com users$ cat users菜鸟教程www.runoob.com$如果不希望文件内容被覆盖可以使用 追加到文件末尾例如$ echo 菜鸟教程www.runoob.com users$ cat users菜鸟教程www.runoob.com菜鸟教程www.runoob.com$输入重定向和输出重定向一样Unix 命令也可以从文件获取输入语法为command1 file1这样本来需要从键盘获取输入的命令会转移到文件读取内容。注意输出重定向是大于号()输入重定向是小于号()。实例接着以上实例我们需要统计 users 文件的行数,执行以下命令$ wc -l users2 users也可以将输入重定向到 users 文件$ wc -l users2 注意上面两个例子的结果不同第一个例子会输出文件名第二个不会因为它仅仅知道从标准输入读取内容。commmand1 infile outfile同时替换输入和输出执行commmand1,从文件infile读取内容然后将输入写入到outfile中。重定向深入讲解一般情况下每个 Unix/Linux 命令运行时都会打开三个文件标准输入文件(stdin)stdin的文件描述符为0Unix程序默认从stdin读取数据。标准输出文件(stdout)stdout 的文件描述符为1Unix程序默认向stdout输出数据。标准错误文件(stderr)stderr的文件描述符为2Unix程序会向stderr流中写入错误信息。默认情况下command file 将 stdout 重定向到 filecommand file 将stdin 重定向到 file。如果希望 stderr 重定向到 file可以这样写$ command 2file如果希望 stderr 追加到 file 文件末尾可以这样写$ command 2file2 表示标准错误文件(stderr)。如果希望将 stdout 和 stderr 合并后重定向到 file可以这样写$ command file 21或者$ command file 21如果希望对 stdin 和 stdout 都重定向可以这样写$ command file1 file2command 命令将 stdin 重定向到 file1将 stdout 重定向到 file2。实例在命令行中通过 wc -l 命令计算 Here Document 的行数$ wc -l EOF欢迎来到菜鸟教程www.runoob.comEOF 3 # 输出结果为 3 行 $ 我们也可以将 Here Document 用在脚本中例如 #!/bin/bash# author:菜鸟教程# url:www.runoob.comcat EOF欢迎来到菜鸟教程www.runoob.comEOF 执行以上脚本输出结果 欢迎来到菜鸟教程www.runoob.com/dev/null 文件如果希望执行某个命令但又不希望在屏幕上显示输出结果那么可以将输出重定向到 /dev/null$ command /dev/null/dev/null 是一个特殊的文件写入到它的内容都会被丢弃如果尝试从该文件读取内容那么什么也读不到。但是 /dev/null 文件非常有用将命令的输出重定向到它会起到禁止输出的效果。如果希望屏蔽 stdout 和 stderr可以这样写$ command /dev/null 21注意0 是标准输入STDIN1 是标准输出STDOUT2 是标准错误输出STDERR。这里的 2 和 之间不可以有空格2 是一体的时候才表示错误输出。 十五文件包含 和其他语言一样Shell 也可以包含外部脚本。这样可以很方便的封装一些公用的代码作为一个独立的文件。Shell 文件包含的语法格式如下. filename # 注意点号(.)和文件名中间有一空格或source filename 实例 创建两个 shell 脚本文件。test1.sh 代码如下 #!/bin/bash # author:菜鸟教程 # url:www.runoob.com urlhttp://www.runoob.comtest2.sh 代码如下 #!/bin/bash # author:菜鸟教程 # url:www.runoob.com #使用 . 号来引用test1.sh 文件 . ./test1.sh # 或者使用以下包含文件代码 # source ./test1.sh echo 菜鸟教程官网地址$url接下来我们为 test2.sh 添加可执行权限并执行$ chmod x test2.sh $ ./test2.sh 注被包含的文件 test1.sh 不需要可执行权限。 菜鸟教程官网地址http://www.runoob.com ------OVER--------
http://www.pierceye.com/news/856870/

相关文章:

  • 企业网站首页布局尺寸营销网站建设哪家便宜
  • 专题网站建设策划郑州市做网站的公
  • wordpress網頁版天津百度网站排名优化
  • 做网站建设销售工资代做电大网站ui作业
  • DMZ做网站wordpress 小工具 创建
  • 宠物网站建设方案外贸网站建设公司服务
  • 玉林网站建设学校门户网站建设的意义
  • 湖南营销型网站建设 在线磐石网络现在出入河南最新规定
  • 阿里云虚拟主机网站国内十大mcn公司
  • c 做网站起什么作用电商建站系统
  • wordpress 网站 上传微信公众平台直接上传wordpress
  • 北滘高明网站建设电子商城网站建设价格
  • 根据一个网站仿做新网站是什么网站代理公司注册收费
  • 创业给企业做网站开发青岛公司建设网站
  • 银川网站建设联系电话郑州网站建设廴汉狮网络
  • 在兔展上怎么做网站页面高端企业网站建站
  • 网站开发 调试网站做seo推广方案
  • 网站的服务器和空间微网站技术
  • 烟台软件优化网站敦煌网站建设
  • wordpress防抓取wordpress seo h1标签
  • 产品宣传网站模板完整个人网站html
  • 多用户商城网站开发seo搜索是什么
  • 永川网站制作网页设计中好的网站
  • 淮南本地网从化网站建设优化
  • 必要是什么网站山东网站seo
  • 汕头网站快速优化排名wordpress安装流程图
  • 郑州视频网站建设大概多少钱赶集网2022年最新招聘
  • 购物网站怎么做优化wordpress 暖岛 主题
  • 帝国cms如何做电影网站广告设计要学哪些软件
  • 企业做网站的意义网站建设的知识