Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
linux shell脚本中if条件的实现_Linux_Shell - Fatal编程技术网

linux shell脚本中if条件的实现

linux shell脚本中if条件的实现,linux,shell,Linux,Shell,我在linux中有一个100多个文件夹的列表,文件夹路径为“files/data”,其中我已经有了基本脚本“list.sh” 当我运行它时 sh list.sh 它在“文件/数据”文件夹旁边列出了100多个文件夹(亚马逊、苹果、可乐、百事可乐等)。但是我正在寻找一些if命令实现来实现下面的命令 当我打电话 sh list.sh --brand=apple 那么它应该只列出“苹果”,如果我打电话 sh list.sh --brand=all 然后它应该列出所有100多个文件夹(亚马逊、苹果、

我在linux中有一个100多个文件夹的列表,文件夹路径为“files/data”,其中我已经有了基本脚本“list.sh”

当我运行它时

sh list.sh
它在“文件/数据”文件夹旁边列出了100多个文件夹(亚马逊、苹果、可乐、百事可乐等)。但是我正在寻找一些if命令实现来实现下面的命令

当我打电话

sh list.sh --brand=apple
那么它应该只列出“苹果”,如果我打电话

sh list.sh --brand=all
然后它应该列出所有100多个文件夹(亚马逊、苹果、可乐、百事可乐等)


谢谢。

我已经编辑了您的脚本

用法:

./script.sh all-显示文件夹路径中的所有目录

./script.sh苹果-显示苹果目录

您不能使用没有参数的脚本,因为使用了grep

希望这就是你所需要的

#!/bin/bash

brand=$1


function ShowDirs()
{
for d in files/data/*
do
    if ! [[ $brand == all ]];
     then
        echo $d | grep $brand
    else
        echo $d
    fi
done
}

ShowDirs
#!/bin/bash

brand=$1


function ShowDirs()
{
for d in files/data/*
do
    if ! [[ $brand == all ]];
     then
        echo $d | grep $brand
    else
        echo $d
    fi
done
}

ShowDirs