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

网站建设是用自己的服务器/网站外包一般多少钱啊

网站建设是用自己的服务器,网站外包一般多少钱啊,给朋友做的相册网站没有了,暴风seo论坛文章目录数组转义与引用特殊字符转义符号引号运算符赋值运算符算术运算符数字常量双圆括号特殊字符大全引号括号运算符合和逻辑符合转义符号其他符号测试与判断if 判断casefor 循环使用循环处理命令行参数自定义函数计划任务一次性计划任务周期性计划任务为脚本加锁数组 定义数…

文章目录

      • 数组
      • 转义与引用
        • 特殊字符
        • 转义符号
        • 引号
      • 运算符
        • 赋值运算符
        • 算术运算符
        • 数字常量
        • 双圆括号
      • 特殊字符大全
        • 引号
        • 括号
        • 运算符合和逻辑符合
        • 转义符号
        • 其他符号
      • 测试与判断
      • if 判断
      • case
      • for 循环
      • 使用循环处理命令行参数
      • 自定义函数
      • 计划任务
        • 一次性计划任务
        • 周期性计划任务
        • 为脚本加锁

数组

  • 定义数组

    IPTS=(10.0.0.1 10.0.0.2 10.0.0.3)

  • 显示数组的所有元素

    echo ${IPTS[@]}

  • 显示数组元素个数

    echo ${#IPTS[@]}

  • 显示数组的第一个元素

    echo ${IPTS[0]}

root@ubuntu:/home# ipts=(10.0.0.1 10.0.0.2 10.0.0.3)
root@ubuntu:/home# echo $ipts
10.0.0.1
root@ubuntu:/home# echo ${ipts[@]}
10.0.0.1 10.0.0.2 10.0.0.3
root@ubuntu:/home# echo ${#ipts[@]}
3
root@ubuntu:/home# echo ${ipts[0]}
10.0.0.1
root@ubuntu:/home# echo ${ipts[1]}
10.0.0.2
root@ubuntu:/home# echo ${ipts[2]}
10.0.0.3
root@ubuntu:/home# echo ${ipts[3]}

转义与引用

特殊字符

特殊字符:一个字符不仅有字面意义,还有元意(meta-meaning)

  • # 注释
  • ; 分号
  • \ 转义符号
  • " ' 引号

转义符号

单个字符前的转义符号

  • \n \r \t 单个字符的转义
  • \$ \" \\ 单个非字母的转义
root@ubuntu:/home# echo "$a"root@ubuntu:/home# echo "\$a"
$a

引号

  • " 双引号
  • ' 单引号
  • ` 反引号
root@ubuntu:/home# var1=123
root@ubuntu:/home# echo '$var1'
$var1
root@ubuntu:/home# echo "$var1"
123

运算符

赋值运算符

  • = 赋值运算符,用于算术赋值和字符串赋值

算术运算符

  • 基本运算符:+ - * / ** %
  • 使用 expr 进行运算:expr 1 + 2,仅支持整数,+号两侧需要空格
root@ubuntu:/# expr 1 + 2
3
root@ubuntu:/# num1=`expr 1 + 2`
root@ubuntu:/# echo $num1
3

数字常量

  • 数字常量的使用方法
    • let “变量名=变量值”
    • 变量值使用0开头为八进制
    • 变量值使用0x开头为十六进制

双圆括号

  • 双圆括号是 let 命令的简化
    • (( a=10 ))
    • (( a++ ))
    • echo $(( 10+20 ))
root@ubuntu:/# (( a=1+2 ))
root@ubuntu:/# echo $a
3
root@ubuntu:/# b=2+3
root@ubuntu:/# echo $b
2+3
root@ubuntu:/# (( a++ ))
root@ubuntu:/# echo $a
4

特殊字符大全

引号

  • ’ 完全引用
  • " 不完全引用
  • ` 执行命令

括号

  • () (()) $() 圆括号

    • 单独使用圆括号会产生一个子 shell ( xyz=123 )

      [root@bogon ~]# echo $(( 1+2 ))
      3
      
      [root@bogon ~]# cmd1=$(ls)
      [root@bogon ~]# echo $cmd1
      Desktop Documents Downloads Music Pictures Public Templates Videos
      
    • 数组初始化 IPS=( ip1 ip2 ip3)

  • [] [[]] 方括号

    • 单独使用方括号是测试(test)或数组功能

      [root@bogon ~]# [ 5 -gt 4 ]
      [root@bogon ~]# echo $?
      0
      [root@bogon ~]# [ 5 -gt 6 ]
      [root@bogon ~]# echo $?
      1
      
    • 两个方括号表示测试表达式

      [root@bogon ~]# [ 5 > 4 ]
      [root@bogon ~]# echo $?
      0
      [root@bogon ~]# [ 5 > 6 ]
      [root@bogon ~]# echo $?
      1
      
  • <> 尖括号 重定向符合

  • {} 花括号

    • 输出范围 echo {0…9}

      [root@bogon ~]# echo {0..9}
      0 1 2 3 4 5 6 7 8 9
      
    • 文件复制 cp /etc/passwd{,.bak}

      [root@bogon ~]# cp -v /etc/passwd{,.bak}
      "/etc/passwd" -> "/etc/passwd.bak"[root@bogon ~]# cp -v initial-setup-ks.cfg{,.txt}
      ‘initial-setup-ks.cfg’ -> ‘initial-setup-ks.cfg.txt’
      

运算符合和逻辑符合

  • + - * / % 算数运算符
  • > < = 比较运算符
  • && || ! 逻辑运算符

转义符号

\ 转义某字符

  • \n 普通字符转义后有不同的功能
  • \' 特殊字符转义后,当做普通字符来使用

其他符号

  • # 注释符
  • ; 命令分隔符
    • case 语句的分隔符要转义 ;;
  • :空指令
  • . 和 source 命令相同
  • ~ 家目录
  • , 分隔目录
  • * 通配符
  • ? 条件测试 或 通配符
  • $ 取值符
  • | 管道符
  • & 后台运行
  • 空格

测试与判断

  • 退出程序命令

    • exit
    • eixt 10 返回10给shell,返回值非0为不正常退出
    • $? 判断当前shell前一个进程是否正常退出
  • test 命令用于检查文件或者比较值

    • 文件测试
    • 整数比较测试
    • 字符串测试

    测试语句可以简化为 [ ] 符号,[ ] 符号嗨哟拓展写法 [[ ]],支持 && || < >

    man test 查看具体用法

    [root@bogon ~]# [ $UID=0 ]
    [root@bogon ~]# echo $?
    0
    [root@bogon ~]# echo $USER
    root
    

if 判断

[root@bogon ~]# if [ $UID=0 ]
> then 
>     echo " root user"
> firoot user
[root@bogon ~]# if pwd
> then 
>     echo " pwd running "
> fi
/rootpwd running 

if-then-else语句可以在条件不成立时也运行相应的命令

if [ 测试条件成立]
then 执行命令
else 测试条件不成立,执行相应命令
fi 结束
[root@bogon ~]# cat test.sh 
#!/bin/bashif [ $USER=root ]; thenecho "user root"
else echo "oher user"
fi
[root@bogon ~]# . test.sh 
user root
[root@bogon ~]# cat test2.sh 
#!/bin/bash
if [ $USER = root ]; thenecho "root"
elif [ $USER = user1 ]; thenecho "user1"
elseecho "other user"
fi
[root@bogon ~]# bash ./test2.sh 
root

case

case 语句和 select 语句可以构成分支

case "$var" in"case1")cmd1  ;;"case2")cmd2  ;;*)cmd3  ;;
esac
foxit@ubuntu:~$ cat test.sh 
#!/bin/bash
case "$1" in"start"|"START")echo $0 start......;;"stop")echo $0 stop......;;"restart" | "reload")echo $0 restart......;;*)echo "Usage: $0 {start|stop|restart|reload}";;
esac
foxit@ubuntu:~$ ./test.sh start
foxit@ubuntu:~$ ./test.sh start
./test.sh start......
foxit@ubuntu:~$ ./test.sh stop
./test.sh stop......

for 循环

  • 使用 for 循环变量命令的执行结果
  • 使用 for 循环变量变量和文件的内容
  • C语言风格的 for 命令
  • while 循环
  • 死循环
  • until 循环
  • break 和 continue 语句
  • 使用循环对命令行参数的处理
foxit@ubuntu:~$ echo {1..9}
1 2 3 4 5 6 7 8 9
foxit@ubuntu:~$ for i in {1..3}
> do
>   echo $i
> done
1
2
3
foxit@ubuntu:~$ touch a.mp3 b.mp3 c.mp3
foxit@ubuntu:~$ ls
a.mp3  b.mp3  c.mp3
foxit@ubuntu:~$ for filename in `ls *.mp3`
> do
>    mv $filename $(basename $filename .mp3).mp4
> done
foxit@ubuntu:~$ ls
a.mp4  b.mp4  c.mp4foxit@ubuntu:~$ for filename in $(ls *.mp4); do    mv $filename $(basename $filename .mp4).mp3; done
foxit@ubuntu:~$ ls
a.mp3  b.mp3  c.mp3 
foxit@ubuntu:~$ for ((i=1;i<=3;i++))
> do 
>   echo $i
> done
1
2
3
foxit@ubuntu:~$ a=1
foxit@ubuntu:~$ while [ $a -lt 10 ]
> do
>   echo $a
> donefoxit@ubuntu:~$ while [ $a -lt 4 ]; do  ((a++));echo $a; done
2
3
4
foxit@ubuntu:~$ for num in {1..9}
> do
>   if [ $num -eq 5 ]; then
>     break
>   fi
>   echo $num
> done
1
2
3
4
foxit@ubuntu:~$ for num in {1..9}
> do
>   if [ $num -lt 5 ]; then
>      continue
>   fi
>   echo $num
> done
5
6
7
8
9

使用循环处理命令行参数

  • 命令行参数可以使用 $1 $2 ... ${10}...${n} 进行读取
  • $0 表示脚本名称
  • $* 和 $@ 代表所有位置参数
  • $# 代表位置参数的数量
foxit@ubuntu:~$ cat test.sh 
#!/bin/bash
for pos in $*
doif [ $pos = help ]; thenecho $pos $posfi
donefoxit@ubuntu:~$ ./test.sh help
help help
foxit@ubuntu:~$ cat test.sh 
#!/bin/bash
while [ $# -ge 1 ]
doif [ "$1" = "help" ]; thenecho $1 $1fishift
donefoxit@ubuntu:~$ ./test.sh a b c help
help help

自定义函数

  • 函数用于“包含”重复使用的命令集合

  • 自定义函数

    function fname() {

    命令

    }

  • 函数的执行

    fname

foxit@ubuntu:~$ function cdls() {
> cd /var
> ls
> }
foxit@ubuntu:~$ cdls
backups  cache  crash  lib  local  lock  log  mail  metrics  opt  run  snap  spool  tmp
foxit@ubuntu:~$ unset cdls
  • 函数作用范围的变量

    local 变量名

  • 函数的参数

    $1 $2 $3 … $n

foxit@ubuntu:~$ cdls() { 
dir=$1
cd $dir
ls
}foxit@ubuntu:/tmp$ cdls /var
backups  cache  crash  lib  local  lock  log  mail  metrics  opt  run  snap  spool  tmp
foxit@ubuntu:~$ cat test.sh 
#!/bin/bash
checkpid() {
local i
for i in $*; do[ -d "/proc/$i" ] && return 0
done
return 1
}
foxit@ubuntu:~$ chmod u+x test.sh
foxit@ubuntu:~$ source test.sh 
foxit@ubuntu:~$ checkpid 1
foxit@ubuntu:~$ echo $?
0
foxit@ubuntu:~$ checkpid 2  3
foxit@ubuntu:~$ echo $?
0
foxit@ubuntu:~$ checkpid 65533
foxit@ubuntu:~$ echo $?
1

计划任务

一次性计划任务

at 执行定时任务
ctrl+d 提交
atq 查看定时任务

foxit@ubuntu:~$ at 13:45
The program 'at' is currently not installed. You can install it by typing:
sudo apt install at
foxit@ubuntu:~$ sudo apt install atfoxit@ubuntu:~$ at 13:47
warning: commands will be executed using /bin/sh
at> echo hellotxt > /home/foxit/hello.txt
at> <EOT>
job 2 at Sun May 30 13:47:00 2021
foxit@ubuntu:~$ ls
Desktop  Documents  Downloads  examples.desktop  hello.txt  Music  Pictures  Public  Templates  Videos
foxit@ubuntu:~$ cat hello.txt 
hellotxt
foxit@ubuntu:~$ ls -l hello.txt 
-rw-rw-r-- 1 foxit foxit 9 530 13:47 hello.txt

周期性计划任务

cron

  • 配置方式
    • crontab -e
  • 查看现有的计划任务
    • crontab -l
  • 配置格式
    • 分钟 小时 日期 月份 星期 执行的命令
    • 注意命令的路径问题
foxit@ubuntu:~$ crontab -e
* * * * * /bin/date/date >> /home/foxit/tmp.txtfoxit@ubuntu:~$ cat tmp.txt 
2021年 05月 30日 星期日 13:56:01 CST
2021年 05月 30日 星期日 13:57:01 CST

为脚本加锁

  • 如果计算机不能按照预期时间运行
    • anacontab 延时计划任务
    • flock 锁文件
http://www.lbrq.cn/news/840097.html

相关文章:

  • 手机html5网站模板/网推项目
  • 辽宁seo推广软件/太原seo招聘
  • 宁波做网站优化价格/长沙seo搜索
  • 为企业做贡献/淘宝seo是什么意思啊
  • 广东深圳疫情/谷歌网站优化
  • 网站建设工程师 html5/草根seo视频大全网站
  • 不用下载直接浏览的网站/济南网站推广优化
  • 可以免费做演播的听书网站/seddog站长之家
  • wordpress更改固定链接404/青岛网站seo
  • 大同市人民政府门户网官网/昆明seo技术培训
  • wordpress建站网站报错/网络营销方法有几种类型
  • 南山区做网站公司/游戏推广员是做什么的
  • 苏州 网站建设/广告宣传语
  • 网站代理什么意思/城关网站seo
  • 厦门做网站/中国十大经典广告
  • 宜昌做网站的公司/河北seo推广方案
  • 怎么用自己的电脑做网站/今日搜索排行榜
  • 建设网站广州/百度极速版下载安装最新版
  • 北京通州做网站/关键词全网搜索
  • 登录建设银行网站打不开/专业做加盟推广的公司
  • 上海市虹口市容建设公司网站/网站网络排名优化方法
  • 网站建设新方向/长沙网络推广软件
  • 信息流投放平台/长沙做优化的公司
  • 海口市网站建设/北京seo招聘网
  • 网站做淘宝客有什么要求/怎么优化关键词排名优化
  • 网站的特效代码/在线代理浏览网站
  • java做网站的软件6/网络营销的方法有哪些
  • wordpress mysql php/如何优化网络速度
  • 常用wap网站开发工具 手机网站制作软件/seo网站优化怎么做
  • 外贸营销型建站/seo一个关键词多少钱
  • 零基础学Vue3组件化开发
  • C# 8.0 创建一个简单的控制台应用程序
  • 55. 跳跃游戏
  • 【删库跑路】一次删除pip的所有第三方库
  • 【Linux手册】重定向是如何实现的?Linux下为什么一切皆文件?
  • AI助手指南:从零开始打造Python学习环境(VSCode + Lingma/Copilot + Anaconda + 效率工具包)