• shell脚本简单学习教训经验


    1. shell字符串  双引号

      双引号的优点:双引号里可以有变量

      双引号里可以出现转移字符

      单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的

      单引号字符串中不能出现单引号(对单引号使用转义符后也不行)

    2. shell显示变量

      read命令从标准输入中读取一行,并把输入行的每个字段的只指定给shell变量:

      #!/bin/sh

      read name

      echo "$name It is a  test"

    3. 显示命令执行结果

      echo `date`

      这里使用的是反引号`,而不是单引号

      结果是显示当前日期:

      Thu Jul 24 10:10:10 CST 2017

    正好自己可以运行下刚好碰到的任务:
    test.sh:
    #!/bin/bash

    hivesql="insert ovewrite local directory '/tmp/test' row format delimited fields terminated by '|' select * from test where id='001' "

    while read id;do

      f=$f" or id='$id' "

    done

    hivesql=$hivesql $f

    echo $hivesql

    输入命令行: cat  某.txt  |  ./test.sh    即可查看管道输入文件内容拼接好的hivesql变量。

    shell语句

    $(cat ${configFile} | awk -F '|' '{if($1 == "pro"){print $2}}')

    以'|'为分隔符,读取${configFile}中的内容,如果第一个字段为'pro' 读取第二个字段。
    eg: pro|guangdong shanghai beijing zhejiang sichuan hunan hubei

    AWK的工作原理:

    awk 会把每行进行一个拆分,用相应的命令对拆分出来的“段”进行处理。

    (1)行工作模式,读入文件的每一行,会把一行的内容,存到$0里

    (2)使用内置的变量FS(段的分隔符,默认用的是空白字符),分割这一行,把分割出来的每个段存到相应的变量$(1-100)

    (3)输出的时候按照内置变量OFS(out FS),输出

    (4)读入下一行继续操作

    简单实例

    [root@tx3 ~]# echo "this is a book" > awk.txt

    [root@tx3 ~]# awk '{print $2,$1,$3,$4}' awk.txt

    is this a book




    在python2的字符编码问题时常会遇到“UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-5: ordinal not in range(128)”的编码错误。

    而用以下方法通常可以解决:

    1 import sys
    2 reload(sys)
    3 sys.setdefaultencoding('utf-8')

    仅供个人初学习,记录。

  • 相关阅读:
    VS2005快捷键(转)
    codeSmish使用《转》
    WinForm TextBox数据绑定
    NetTiers抛出"Unable To Load NetTiersServiceSection“的异常
    DELPHi第三方控件使用方法(摘录)
    遠程連接操作
    不同服务器数据库之间的数据操作
    delphi 关闭 MDI 子窗体
    VSS使用手册(转)
    delphi 快捷键
  • 原文地址:https://www.cnblogs.com/wangzhaoshuang/p/7406657.html
Copyright © 2020-2023  润新知