自学内容网 自学内容网

shell笔记

1.使用 ls -l 及 find 查找某个或者多个目录文件数量时

        单个目录:

find 目录 -type f|wc -l与 ls -l 目录|grep -v 'total'|wc -l 一致

        多个目录:如上结果不一致,因为 ls -l 在算多目录时,会将多目录及空格打出算作额外行
find 更精确。

2.关于shell中使用系统alias 情况

        shell 中如果脚本中不声明环境变量,个别命令类似于"ll" ,将在脚本中不生效,需使用 "ls -l"代替"ll"。

3.shell  if语句中,运算符表示判断的情况,如下,带有空格的" != " 或者  " = "表示判断,不带空格表示赋值,书写失误容易导致结果不达预期。

#!/bin/sh
a=1
b=2

if [ "$a" != "$b" ];then
   echo "a!=b"
   echo "a="$a
   echo "b="$b
elif [ "$a" = "$b" ];then
   echo "a=b"
   echo "a="$a
   echo "b="$b
fi
echo '-------------------------------'
if [ "$a"="$b" ];then
    echo "a=b?"
    echo "a="$a
    echo "b="$b
else
    echo "a!=b?"
    echo "a="$a
    echo "b="$b
fi

执行结果如下:

4.UNIX中,i++ 不识别,可用 let i+=1 或者 ((i+=1))代替。

5.UNIX中,数组声明方式与Linux不同

        UNIX需使用 set -A [数组变量名]  [数组值] 

table_old="123 4456 2222"
#如下方式声明Unix数组
set -A table_old $table_old

#输出数组全部值
echo ${table_old[@]}
#输出数组第一个值
echo ${table_old[0]}
#输出数组的长度
echo ${#table_old[@]} 
#输出数组长度2
echo ${#table_old[*]}

6.


原文地址:https://blog.csdn.net/Lucis_tomato/article/details/145152759

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!