2つのスクリプトがあります。 1つはcsvファイルを含むフォルダ用、もう1つは.tar.gzファイルを含むフォルダ用です。 2番目のスクリプトでは、操作を実行する前にまずファイルを解凍します。これで、これら2つのスクリプトを、使用したいフォルダを指定できる1つのスクリプトにまとめたいと思います。スクリプトを実行すると、ユーザーはフォルダAまたはフォルダBを使用する2つの選択肢があります。一種のメニューのようです。
スクリプトA
#!/bin/bash
FOLDER=/path/to/folder
DATE_LOG=`date "+%Y-%m-%d-%H:%M:%S"`
LOG_FILE=/home/kamil/Desktop/Script/log_$DATE_LOG.txt
# Getting the pattern and headers of files from FOLDER
cd "$FOLDER"
for file in *.csv; do
echo -n "${file}" "|" | sed -r 's/(.*)_[0-9]{8}_[0-9][0-9]-[0-9][0-9].[0-9][0-9].csv/\1/'
head -1 "$file"
done | tee $LOG_FILE
スクリプトB
#!/bin/bash
FOLDER_HISTO=/path/to/folder/WithTAR.GZ
DATE_LOG=`date "+%Y-%m-%d-%H:%M:%S"`
LOG_FILE=/home/kamil/Desktop/Script/log_$DATE_LOG.txt
# Getting the pattern and headers of files from FOLDER_HISTO
cd "$FOLDER_HISTO"
for zip_file in *.tar.gz; do
file=`tar -xvf $zip_file`
echo -n "${file}" "|" | sed -r 's/(.*)_[0-9]{8}_[0-9][0-9]-[0-9][0-9].[0-9][0-9].csv/\1/'
head -1 "$file"
done | tee $LOG_FILE
ベストアンサー1
メニューを作成する標準CLI方式は次のとおりですselect
。
select response in "Folder 1" "Folder 2"
do
case $response in
"Folder 1") cd folder1; /path/to/ScriptA.sh; exit ;;
"Folder 2") cd folder2; /path/to/ScriptB.sh; exit ;;
esac
done