0

次のスクリプトをオンラインで見つけました。~/.bashrc に追加するように指示されました。Linux ディストリビューションの 64 ビット バージョンをインストールするまでは問題なく動作していました。(Kali Linux - Debian Wheezy )。何が起こっているのかわかりません。なぜ機能しないのですか?どうすれば修正できますか? 私は Linux は比較的新しく、bash スクリプトもまったく初めてです。脚本:

#!/bin/bash
# function Extract for common file formats

function extract {
 if [ -z "$1" ]; then
    # display usage if no parameters given
    echo "Usage: extract <path/file_name>.<zip|rar|bz2|gz|tar|tbz2|tgz|Z|7z|xz|ex|tar.bz2|tar.gz|tar.xz>"
 else
    if [ -f $1 ] ; then
        # NAME=${1%.*}
        # mkdir $NAME && cd $NAME
        case $1 in
          *.tar.bz2)   tar xvjf ../$1    ;;
          *.tar.gz)    tar xvzf ../$1    ;;
          *.tar.xz)    tar xvJf ../$1    ;;
          *.lzma)      unlzma ../$1      ;;
          *.bz2)       bunzip2 ../$1     ;;
          *.rar)       unrar x -ad ../$1 ;;
          *.gz)        gunzip ../$1      ;;
          *.tar)       tar xvf ../$1     ;;
          *.tbz2)      tar xvjf ../$1    ;;
          *.tgz)       tar xvzf ../$1    ;;
          *.zip)       unzip ../$1       ;;
          *.Z)         uncompress ../$1  ;;
          *.7z)        7z x ../$1        ;;
          *.xz)        unxz ../$1        ;;
          *.exe)       cabextract ../$1  ;;
          *)           echo "extract: '$1' - unknown archive method" ;;
        esac
    else
        echo "$1 - file does not exist"
    fi
fi
}

エラー:

 extract LibreOffice.tar.gz 
tar (child): ../LibreOffice.tar.gz: Cannot open: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now

編集:tarのコメントName=...を外してmkdir $NAME...圧縮を解除します。ただし、.zip は解凍されませんでした。今、別のファイルでそれを試しています。

編集2:私は本当にばかだと感じます。これを投稿する前に、わざわざコードを見ませんでした。コメントを外すとこれが修正されます。しかし、なぜコードのコメントを外す必要があるのに、64 ビット版をインストールする前はそうしなかったのでしょうか?

4

1 に答える 1

1

コメントを外すことで問題は解決しました。

# NAME=${1%.*}

# mkdir $NAME && cd $NAME

于 2014-04-09T00:22:47.340 に答える