小编ang*_*gus的帖子

如何处理 shell 脚本中的开关?

是否有一些内置工具可以识别-x--xxxx作为开关,而不是参数,或者您是否必须遍历所有输入变量,测试破折号,然后解析参数?

shell options shell-script getopts

21
推荐指数
3
解决办法
4万
查看次数

如何指定 -?GNU getopt 选项

使用 GNUgetopt命令解析命令行参数时,我如何(如果可能)识别-?为另一个选项?有没有办法在操作字符串中转义它?

bash shell-script getopts

8
推荐指数
1
解决办法
3291
查看次数

查找:将 -depth 与 -prune 结合以提供 cpio

我正在构建一个备份脚本,其中某些目录不应包含在备份存档中。

cd /;
find . -maxdepth 2 \ 
    \( -path './sys' -o -path './dev' -o -path './proc' -o -path './media' -o -path './mnt' \) -prune \
-o -print
Run Code Online (Sandbox Code Playgroud)

这只会找到我想要的文件和目录。

问题是cpio应该提供以下选项,以避免在恢复文件时出现权限问题。

find ... -depth ....
Run Code Online (Sandbox Code Playgroud)

如果我添加该-depth选项,返回的文件和目录将包含我想要避免的文件和目录。

我真的不明白查找手册中的这些句子:

-prune True;  if  the  file is a directory, do not descend into it. If
              -depth is given, false; no  effect.   Because  -delete  implies
              -depth, you cannot usefully use -prune and -delete together.
Run Code Online (Sandbox Code Playgroud)

find

6
推荐指数
1
解决办法
1793
查看次数

如何正确捕获可选和非可选参数?

我想编写一个 shell 脚本,它将接受一些带有一些选项的参数并打印这些参数。假设该脚本的名称是abc.ksh. 该脚本的用法是 -
./abc.ksh -[a <arg>|b <arg>|c|d] <some_string>
现在我编写一个 shell 脚本,它将接受选项和参数

#!/bin/ksh

# Default Values
vara=","
varb=false
varbname=""
varc=false

# Scanning inputs
while getopts :a:b:cd option
do
        case $option in
                a) vara=$OPTARG;;
                   #shift $((OPTIND-1));;
                b) varb=true
                   varbname=$OPTARG;;
                   #shift $((OPTIND-1));;
                c) varc=true;;
                   #shift $((OPTIND-1));;
                d) echo "Usage $0 \-[a|b|c|d] <filename>"
                   exit 0;;
                \?) echo "Invalid option -$OPTARG. Please run '$0 -h' for help"
                    exit 1;;
                :) echo "Option -$OPTARG requires an argument. Please run '$0 -d' for …
Run Code Online (Sandbox Code Playgroud)

ksh options input shell-script getopts

3
推荐指数
1
解决办法
8214
查看次数

标签 统计

getopts ×3

shell-script ×3

options ×2

bash ×1

find ×1

input ×1

ksh ×1

shell ×1