私は、(ほとんど)パスワードとファイルの圧縮と圧縮/アーカイブを自動化するコードを書いています。しかし、コードは私を憎むようです。ジップI/Oエラー:bashスクリプトにそのようなファイルやディレクトリがありません
私はこれを1行ずつ実行しましたが、$file
と$source
が正しく有効であっても、常にzipコマンドを実行します。
アイデア?
ここでは、ソース・コードです:
#!/bin/bash
echo "Drag in the source file"
read source
echo
echo "Drag in the destination file, or press enter to select the Desktop"
read destination
echo
if [ -z "$destination" ]
then destination="$PWD/Desktop"
echo "Destination is set to the desktop"
fi
echo "Type the name of the file to make"
read file
if [ -z "$file" ]
then file="archive"
echo "File name set to archive.zip"
fi
file="${destination}/${file}"
if [ -d $"source" ]
then zip -erj "$file" "$destination"
else zip -ej "$file" "$destination"
fi
ジップはスクリプト内のあなたのパスにない可能性があります。パスがハードコーディングされているかどうか確認してください。そうであれば、スクリプトのパスを設定することができます。 –
'それからdestination =" $ PWD/Desktop "' - これはデスクトップではありません。 '$ PWD'は現在の作業ディレクトリです。何でもかまいません。デスクトップは '$ HOME/Desktop'です。 'zip'が存在しない場合、' zip'は宛先ディレクトリを作成しないので、これはエラーの原因です。また、 'zip'に' $ source'ではなく '$ destination'をアーカイブするように依頼したようです。 – axiac
@axiacありがとう!それはそれを解決したようだ。たぶん私はそれを解決としてマークすることができますので、答えを作成する?また、私は、zipのシンタックスが 'zip destination source'だと確信しています。 –