rm
ファイル名 glob またはwget
.
Ubuntu 16.04では、次のことを行いました。
set -a
export drt="/var/www/html"
export pma="[pP][hH][pP][mM][yY][aA][dD][mM][iI][nN]"
set +a
echo $drt # Got the above.
echo $pma # Got the above.
その後、実行可能スクリプト(~/myScripts/tp_pma.sh
)を実行しました。
#!/bin/bash
rm -rf ${drt}/${pma}*
wget -P ${drt} https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.zip
unzip ${drt}/${pma}*.zip
mv ${drt}/${pma}*/ ${drt}/phpmyadmin/
rm ${drt}/${pma}*.zip
スクリプトが部分的に成功しました。
- 最初の操作が
rm
成功した可能性があり、以下の問題がすべて発生した可能性があります。 - 部分的に成功しました
wget
。新しいPMAのコピーを含むzipファイルdrt
。 - 私はうまくいき、
unzip
zipを解凍し、最新のphpmyadminディレクトリを入手しました。 - 失敗しました
mv
(下記のエラーを参照)。ディレクトリがphpMyAdmin-4.7.7-all-languages
自分のホームディレクトリに残っているため、期待どおりにディレクトリが移動されず、名前も変更されませdrt
ん。phpmyadmin
- 最後の
rm
成功 - 私のホームディレクトリからzipが削除されました。
frエラーは発生しませんwget
。
そしてpma
なぜか値がphpMyAdmin-4.7.7-all-languages
。私はそれをその値に変えませんでした。
ここで何が失敗する可能性があり、その理由は何ですか?
ベストアンサー1
使用したコマンドは、アーカイブがある場所ではなく、実行中のディレクトリにunzip
アーカイブを抽出します。unzip
まず、アーカイブを含むディレクトリに変更するか、次を使用できます。-d
オプション:
[-d exdir]
ファイルを抽出するオプションのディレクトリです。デフォルトでは、すべてのファイルとサブディレクトリは現在のディレクトリに再作成されます。
おそらくchdirオプションを選択します。
#!/bin/bash
cd "$drt"
rm -r ${pma}*
wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.zip
unzip phpMyAdmin-latest-all-languages.zip
mv ${pma}*/ phpmyadmin/
rm phpMyAdmin-latest-all-languages.zip
pma
また、「値が何とか変更されました」と言ったとき、引用符なしで変数を使用するとphpMyAdmin-4.7.7-all-languages
ファイル名パターンとして使用されますので、パターンと一致するファイルがあればecho $pma*
既存ファイルの名前が表示されますのでご注意ください。
(大文字と小文字の区別モードが必要かどうかはわかりません。名前の形式がから変更されると予想する現実的な理由はありますかphpMyAdmin
?phpmyadmin
)