echo

shell学习:几道常见shell习题

限于喜欢 提交于 2019-12-24 04:38:23
1. 编写 shell 脚本,计算 1-100 的和; 1 #! /bin/bash 2 sum=0 3 for i in `seq 1 100`; do 4 sum=$[$i+$sum] 5 done 6 echo $sum 计算-00和 2. 编写 shell 脚本,要求输入一个数字,然后计算出从 1 到输入数字的和,要求,如果输入的数字小于 1 ,则重新输入,直到输入正确的数字为止; 1 #! /bin/bash 2 n=0 3 while [ $n -lt "1" ]; do 4 read -p "Please input a number, it must greater than "1":" n 5 done 6 7 sum=0 8 for i in `seq 1 $n`; do 9 sum=$[$i+$sum] 10 done 11 echo $sum 12 13 判断输入数字 3. 编写 shell 脚本,把 /root/ 目录下的所有目录(只需要一级)拷贝到 /tmp/ 目录下; 1 #! /bin/bash 2 for f in `ls /root/`; do 3 if [ -d $f ] ; then 4 cp -r $f /tmp/ 5 fi 6 done 拷贝目录 4. 编写 shell 脚本,批量建立用户 user_00, user_01, …

Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数

ぃ、小莉子 提交于 2019-12-24 04:35:06
前面已经讲到,变量名只能包含数字、字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量。 例如,$ 表示当前Shell进程的ID,即pid,看下面的代码: $echo $$ 特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。 $# 传递给脚本或函数的参数个数。 $* 传递给脚本或函数的所有参数。 $@ 传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到。 $? 上个命令的退出状态,或函数的返回值。 $$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。 命令行参数 运行脚本时传递给脚本的参数称为命令行参数。命令行参数用 $n 表示,例如,$1 表示第一个参数,$2 表示第二个参数,依次类推。 请看下面的脚本: #!/bin/bash echo "File name: $0" echo "First Parameter : $1" echo "Second Parameter : $2" echo "Quoted Values: $@" echo "Quoted Values: $*" echo "Total Number of Parameters:$#" 运行结果: bash shell

Linux Shell——函数的使用

匆匆过客 提交于 2019-12-24 04:33:53
文/一介书生,一枚码农。 scripts are for lazy people. 函数是存在内存里的一组代码的命名的元素。函数创建于脚本运行环境之中,并且可以执行。 函数的语法结构为: function <function-name> { <code to execute> } 创建函数不需要 do 或 done 这些关键字,只需要大括号来界定函数的作用范围。 我们可以在命令行中创建一个简单的函数: function show_system { echo "The uptime is:" uptime echo echo "Current dir:" pwd echo echo "Date:" date } 在命令行定义上面的函数: 然后执行函数: 最后,我们可以使用 type 命令查看函数的定义: 方法可以有传递的参数。在此之前,我们先简单介绍 sed 命令,下面的脚本用来移除文件中的注释行和空白行。 sed -i.bak '/^\s*#/d;/^$/d' <filename> 详细介绍一下上面的脚本: sed -i.bak :sed 命令会创建一个以 .bak 结尾的备份文件,用来备份原始的文件。 /^ :表示行首。 \s* :匹配任何不可见字符,包括空格、制表符、换页符等。 #/ :shell 脚本中的注释标记。 /^\s*#/

Linux Shell——流程控制

南楼画角 提交于 2019-12-24 04:33:27
一. 创建交互式脚本 使用 echo命令的选项 关于各种命令的使用,可以使用 man 命令 来查看命令的详细用法介绍。例如,我想看下 echo 的用法和各种选项。可以执行 man echo 。执行结果如下: 如果单独执行 echo 命令,就会打印出一个空白行。 默认情况下,echo 都会换行,如果不想换行的话,可以使用下面两种方式的一种。 echo -n "Which directory do you want to use? " echo -e "Which directory do you want to use? \c" 使用 read 命令 如果我们需要读入用户输入的参数时,可以使用 read 命令,当然还可以从文件系统等读入信息。 我们建立一个新的脚本文件 hello3.sh。 #!/bin/bash echo -n "Hello I $(basename $0) may I ask your name: " read echo "Hello $REPLY" exit 0 执行此脚本时,首先提示需要输入,然后输入的内容, REPLY 当没有给 read 提供参数时设置,最后打印出来。 执行结果为: 优化 read 提示的脚本 在前面的例子中,我们使用了 echo -n 的方式来阻止信息换行,其实 read 命令也带了一个选项来实现相同的功能: read -p "Enter

shell面试题总结

痞子三分冷 提交于 2019-12-24 04:33:03
1) 如何向脚本传递参数 ? ./script argument 例子: 显示文件名称脚本 ./show.sh file1.txt cat show.sh #!/bin/bash echo $1 (LCTT 译注:谢谢某匿名访客的提醒,原题有误,修改之。) 2) 如何在脚本中使用参数 ? 第一个参数 : $1,第二个参数 : $2 例子 : 脚本会复制文件(arg1) 到目标地址(arg2) ./copy.sh file1.txt /tmp/ cat copy.sh #!/bin/bash cp $1 $2 3) 如何计算传递进来的参数 ? $# 4) 如何在脚本中获取脚本名称 ? $0 5) 如何检查之前的命令是否运行成功 ? $? 6) 如何获取文件的最后一行 ? tail-1 7) 如何获取文件的第一行 ? head-1 8) 如何获取一个文件每一行的第三个元素 ? awk'{print $3}' 9) 假如文件中每行第一个元素是 FIND,如何获取第二个元素 awk'{ if ($1 == "FIND") print $2}' 10) 如何调试 bash 脚本 将 -xv 参数加到 #!/bin/bash 后 例子: #!/bin/bash –xv 11) 举例如何写一个函数 ? function example { echo "Hello world!" } 12)

PHP基础(一)

无人久伴 提交于 2019-12-24 04:25:32
前面学习了MySQL基础,为了更好的实践使用,接下来学习关于PHP的知识。 关于PHP中的变量、常量介绍了解 一、变量基本类型(这里只介绍了标量类型) 1、整型值,可以使用十进制、十六进制、八进制或二进制表示,前面可以加上(+或者-)表示正负值。 具体例子: <?php $a = 12; //十进制数 $b = -12; //负数 $c = 012; //八进制数(等于十进制数10) $d = 0x12; //十六进制(等于十进制数18) $e= 0b11; //二进制(等于十进制数3) ?> 2、浮点型,也叫浮点数float,双精度数double或者实数real 具体例子: <?php $a = 1.234; $b = 1.2e3; $c = 7E-10; ?> 思考以下例子: if((0.3 - 0.1) == 0.2){ echo("0.3 - 0.1 等于 0.2"); }else{ echo("0.3 - 0.1 不等于0.2"); } 为什么结果会是“0.3 - 0.1 不等于0.2”呢? 答:这是浮点数的精度的问题,php通常使用IEEE754双精度格式,则由于取整而导致的最大相对误差为1.11e-16。非基本数学 运算可能会出更大误差,并且数学运算可能会给出更大误差,并且要考虑到进行复核运算时的误差传递。此外,以十进制能够表 示的有理数,例如0.1或者0.7

打印城市名称

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-24 04:14:24
例83 需求:写一个脚本让用户输入多个城市的名字(可以是中文),要求不少于5个,然后把这些城市存到一个数组里,最后用for循环把它们打印出来。 #!/bin/bash #这个脚本用来打印城市名字 #作者:xzm #日期:2019-12-18 read -p "输入不少于5个城市的名字,用空格分隔开。" name n = ` echo $name | awk '{print NF}' ` if [ $n -lt 5 ] then echo "请输入至少5个城市的名字." exit fi city = ( $name ) for i in ` seq 0 $ [ $ { #city [ @ ] } -1 ] ` do echo ${city[$i]} done 知识点:a=(1 2 3) 数组赋值 echo ${a[@]} 输出整个数组 echo ${#a[@]} 打印数组个数 echo ${#a[1]} 打印第一个 来源: CSDN 作者: 11+11 链接: https://blog.csdn.net/weixin_42789466/article/details/103601720

Why won't PHP print 0 value?

牧云@^-^@ 提交于 2019-12-24 03:48:23
问题 I have been making a Fahrenheit to Celsius (and vise versa) calculator. All of it works just great, however when I try to calculate 32 fahrenheit to celsius it's supposed to be 0, but instead displays nothing. I do not understand why it will not echo 0 values. Here is some code: <?php // Celsius and Fahrenheit Converter // Programmed by Clyde Cammarata $error = '<font color="red">Error.</font>'; function tempconvert($temptype, $givenvalue){ if ($temptype == 'fahrenheit') { $celsius = 5/9*(

Bash, checking variable

走远了吗. 提交于 2019-12-24 03:06:34
问题 Ok, so I'm trying to run a script where if the user enters y or Y , then the output is YES but if the user inputs n or N then the output is NO , this is what I have so far: read character if (( ("$character") == "y" )) || (( ("$character" == "Y") )); then echo "YES" else echo "NO" fi When I run this code I get YES successfully but inputting n just results in YES anyway. I have no idea what I'm doing wrong and any I'd love some input. Thanks in advance! 回答1: ((...)) is used for math

Add echo to my wordpress sidebar for non-connected users

蓝咒 提交于 2019-12-24 03:04:54
问题 i have Nice Login Widget which does not have any link to the registration page for non-members (simple visitors). I would like to visualize the Inscription link on the sidebar, just under the login widget but NOT anymore when someone is logged in ! The idea is that i will visualize the link with echo and by its css i could position it absolute. I do not know anything about php, i tried to add some codes in my sidebar.ph p file but it does not work : The sidebar.php is a classic twentyeleven