4

「exam_folder」というフォルダーを作成するbashスクリプトが必要です。このフォルダーが既に存在する場合(たとえば、スクリプトを再度実行します)、スクリプトは「exam_folder_1」を作成し、そのフォルダーが存在する場合は「exam_folder_2」などを作成するスクリプト。私はそれを賢くしたいと思います:)私はこのようなものを手に入れました:

function create_folder {

if [ -d "$1" ]; then # if exists
    mkdir $1_`i_max` # function i_max would find out the max number and add 1
else 
    mkdir $1
fi }

ご協力ありがとうございました。

4

3 に答える 3

0

[ "$foo" -eq "$foo" ]これは、任意の POSIX 準拠のシェルで動作するはずです (ただし、 is-number-checkについて 100% 確信があるわけではありません)。と の下で簡単なテストをdash行いbusybox' ashました。

create_folder()
{
    if [ -e "$1" ]; then
        i=0
        for d in "$1"_*; do
            _i="${d##*_}"
            [ "${_i}" -eq "${_i}" ] 2>/dev/null && i="${_i}"
        done
        i=$((i+1))
        mkdir "$1_${i}"
    else
        mkdir "$1"
    fi
}
于 2013-04-30T12:23:16.487 に答える