関数を使用して圧縮されたファイルの名前が正しくありません。

関数を使用して圧縮されたファイルの名前が正しくありません。

bash関数変数構文の基本的な内容が欠落している可能性があります。

zipコマンド構文の私の理解はですzip newfilename.zip filetobezipped。したがって、私の機能は、指定されたフォルダとすべてのコンテンツを圧縮できるようにしたいです。その後、Windowsディレクトリにコピーし、Linuxディレクトリから削除しました。

明確に言えば、圧縮ファイルの名前を「something」と指定するには、圧縮バージョンの名前を「something.zip」と指定したいと思います。

.zipただし、この機能はピリオドの前に文字がない隠しzipファイルを生成します。だから私の変数$ 1が関数に正しく渡されていないようです。

params: $1: filename, $2: week_x, $3: day_y
hwcopy() {
    zip -r $1.zip $1
    cp $1.zip /mnt/c/Users/myName/Desktop/homework/$2/$3
    rm -r $1.zip
}

呼び出し方法(親ディレクトリから):$ hwcopy file_folder_name/ week_x day_5

答え1

もっとテストされた後、問題は私が言った方法にあることに気づきました。

zip file_name/.zip file_name動作しませんが、zip file_name.zip file_name動作します。

${1%/}.zipだから私はスラッシュ文字を切り取るために関数内で呼び出しました。

関連情報