1

我需要帮助来编写一个脚本,该脚本将接收当前目录中的目录并浏览该目录的参数。

如果找到,并且它是一个和目录,脚本将添加以下扩展名:.aaa

但如果它找到一个文件是pdf、 或zipmp3,它应该添加以下扩展名:.bbb

我们假设这些文件还没有任何扩展名

例子:

如果它找到目录 hello 它应该将它重新命名为 hello.aaa 如果它找到一个 pdf 文件名 myfile 它将它重新命名为 myfile.pdf,

不确定是否应该使用case...in或其他东西:

#!/bin/sh
for dir in "$@"; do
    for file in "$dir"/*;
    do    
        if [[ -d $file ]]
        then
            ext=dir
        else
            file *
            if ???????? then ext=pdf; # am not sure how to set the condition so that if teh file found is pdf to add the extension PDF.
            else
                if ???????? ext=zip # same thing if teh file found is zip 
                else
                    if ?????? ext=mp3 # samething if the file found is mp3

    done
done
4

1 回答 1

0
#!/bin/sh
for dir in "$@"; do
    for file in "$dir"/*; do
        # protect against empty dirs - the shell just passes a
        # literal asterisk along in this case
        case $file in
        "$dir/*")
             continue
             ;;
        esac
        if [ -d "$file" ]; then
            ext=aaa
            continue
        fi
        case $(file "$file") in
        "gzip compressed"*)
            ext=gzip
            ;;
        "whatever file(1) says for PDFs")
            ext=pdf
            ;;
        "MP3"*)
            ext=mp3
            ;;
        # et cetera
        esac
    done
done
于 2013-02-21T03:14:59.180 回答