zoukankan      html  css  js  c++  java
  • Shelll1-基础入门之变量

    1.静态语言:编译型语言 强类型(变量)
    事先转换成可执行格式 也就是先编译在执行
    比如 C++、C、 java C#

    动态语言:解释性语言 弱类型
    边解释边执行
    比如PHP shell python perl
    2.变量类型:
    事先确定数据的库存格式和长度
    字符
    数值:整型 浮点型
    单引号是强引用 不做变量替换的
    双引号是弱引用 内部的变量会替换
    反引号( ``或是$(命令) )表示引用命令的执行结果
    a="ab h"
    echo ${#a}
    4
    上边两条命令会显示变量的长度(包括空格)

    3 bash变量类型
    环境变量:echo $PATH
    本地变量:
    位置变量:$1、$2、$3、$4、$5
    特殊变量:$? 这代表上一个命令的执行状态返回值。
    一个程序执可能有两类返回值:
    <1>程序执行结果
    <2>程序状态返回代码(0-255)
    0:正确执行 1-255:错误执行1、2、127系统预留。
    用法:在一个命令执行完之后用echo $?命令 如果显示0说明当前的命令执行成功
    如果显示2说明是权限拒绝
    如果显示1-125说明运行失败
    如果显示127为找到运行的命令

    4.撤销变量: unset 变量名

    5.查看当前shell中变量: 用set命令

    6.查看当前shell中的环境变量:<1>printenv <2> env <3>export<4>set(它能列出全局和非全局的变量) 都可以

    7.特殊变量:$#:参数的个数 $*:表示参数的所有内容。(将命令行所有的参数视为单个字符串。等 同于“$1$2$3”)
    $@:表示参数的所有内容。(将命令行所有的参数视为单独的字符串。 等同于“$1”“$2”“$3”,这时将参数传递给其他程序的最好方 式,因为他会保留所有内嵌在每个参数里的任何空格)用的时候 要加双引号"$@".
    set -- 参数1 参数2 参数3这个可以模拟出位置参数
    例子:
    set -- 参数1 参数2 参数3这个可以模拟出位置参数
    for i in "$@" ; do
    echo $i
    done

    8.全局变量的文件在:/etc/profile. 修改完之后又两种办法生效:<1>用. /etc/profile <2> source /etc/profile

    9.设置全局变量
    export 变量名称=变量值 他可已将这个变量变成全局变量
    declare -x 也可以
    declare -i 变量=值 //变量默认的为字符串,想要让一个变量为整型可以声明,这表是将一个变量声明为整型

    在/etc/profile中尽量要遵循这种标准的格式

    例子:系统自带的环境变量
    echo $HOSTTYPE 查看系统是多少位的操作系统
    echo $PATH 查看当前的环境变量
    echo $SHELL 查看系统默认使用的shell
    cat /etc/shells 查看系统支持哪些shell
    echo $UID 查看当前用户的UID
    echo $HISTSIZE
    chsh 用户名 可以改变用户的shell平台。

    10.局部变量赋值
    <1>变量名=变量值 例子:a=1

    <2>read 命令(可以与用户产生交互,就是可以用这个命令写一段提示语句)

    格式:read 变量1 变量2 //可以是1个或是多个变量然后输入变量值
    read -p “提示语” 变量名 例子:read -p “请输入数字:” a
    read -n 表示不换行
    read -t 数值 表示等待超时间,就是等待用户输入的时间
    11.cat << END END表示文档结束标记.它写成什么都行,只要结尾一致就行
    用户手动输入内容
    END
    它可以等待用户输入内容

    cat << END > 文件名
    用户手动输入内容
    END
    //用户手动输入的内容输入到文件里

     

  • 相关阅读:
    如何在Linux下修改Mysql的用户(root)密码
    CentOS 6.x 如何升级 glibc 2.17
    Tensorflow不同版本要求与CUDA及CUDNN版本对应关系
    darkflow测试和训练yolo
    使用 Alibaba 的 Homebrew 镜像源进行加速
    树莓派开启SSH的N种方法
    Linux开启ssh服务
    在Linux中创建静态库.a和动态库.so
    linux下动态链接库(.so)的显式调用和隐式调用
    删除Win10资源管理器中的3D对象/音乐/视频文件夹
  • 原文地址:https://www.cnblogs.com/pangbing/p/6535169.html
Copyright © 2011-2022 走看看