linux下的shell语句

引号

  1. 单引号
    单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
    单引号字串中不能出现单引号(对单引号使用转义符后也不行)。
  2. 双引号
    双引号里可以有变量
    双引号里可以出现转义字符
  3. 不加引号:
    不会将含有空格的字符串视为一个整体输出, 如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容来,如果字符串中带有空格等特殊字符,则不能完整的输出,需要改加双引号,一般连续的字符串,数字,路径等可以用。
    shell脚本与hive查询中的变量设置https://www.jianshu.com/p/6a14c80d96d7

常见变量

$#  传递给脚本或函数的参数个数。
$0  当前脚本的文件名
$?    可以获取上一个命令的退出状态。所谓退出状态,就是上一个命令执行后的返回结果,0代表正常输出。
length=${#array[@]} 获取数组长度

NF与$NF

NF代表:浏览记录的域的个数
$NF代表:最后一个Field(列)

shell数组的用法

no_partition_data_hdfs=(
"feedback"
"txtdata"
"jointable"
)
for item in no_partition_data_hdfs;do
    ```
done

rm -rf $test删除某个目录要检查是否为空
关于rm -rf $testrm操作变量要注意:

if [ "$test"x != ""x ]; then
else
   rm -rf $test//注意删除前要检查一下变量的值是否为空,防止删除根目录

你可能感兴趣的:(linux下的shell语句)