アーカイブを作成するために使用する以下のスクリプトを、それらを抽出するスクリプトに変換しようとしています。私は任意の引数を廃棄する必要はありません。このスクリプトのようにシフトを維持するために必要かどうか、私は知らないアーカイブを抽出するBashシェルスクリプト
[[ $# -lt 1 ]] && exit 1
files=("[email protected]")
#remove files and directories which are not readable
for index in "${!files[@]}"; do
[[ -r ${files[index]} ]] || unset "files[index]"
done
[[ ${#files[@]} -eq 0 ]] && exit 1
if tar -xzvf "${files[@]}".tar.gz; then
echo "OK"
else
echo "Error"
exit 1
fi
:
[[ $# -lt 2 ]] && exit 1
name=$1; shift
files=("[email protected]")
#exclude all files/directories that are not readable
for index in "${!files[@]}"; do
[[ -r ${files[index]} ]] || unset "files[index]"
done
[[ ${#files[@]} -eq 0 ]] && exit 1
if tar -czvf "${name:-def_$$}.tar.gz" "${files[@]}"; then
echo "Ok"
else
echo "Error"
exit 1
fi
は、これまでのところ、私はこれを持っています。私はそれらをすべて取って、それぞれを解凍できるようにしたい。また、解凍されたファイルの場所をユーザーが選択できるようにする-Cスイッチがあります。ファイルを解凍するディレクトリを変更したい場合やそうでない場合があるため、これをユーザーのオプションとして追加するにはどうすればよいでしょうか。
、それは '動作します。)' –
@ DavidC.Rankin Haha、良い点があります;) – PesaThe
完了する前にOKエコーを追加し、エコーをエラーするためにelseを実行できますか? – Lenk