Bashで(3つ)パラメータを使用して下限を上限に変更するには? [閉鎖]

Bashで(3つ)パラメータを使用して下限を上限に変更するには? [閉鎖]
  1. コマンドラインの引数を介してファイル名を下から上に、または上から下に変更するbashスクリプトを作成する必要があります。したがって、コマンドラインに入力すると、次のようになります。

./bashScript ボトムアップ

その後、ディレクトリ内のすべてのファイルを小文字から大文字に変更する必要があります。

  1. また、特定のファイルを1つだけ変更できるようにする3番目のパラメータも追加する必要がありました。たとえば、次のコマンドラインを入力できる必要があります。

    ./bashScript ファイル名

ベストアンサー1

bash変数の大文字と小文字を変更する演算子は、${var^^*}-upperと${var,,*}to-lowerです。したがって、次のようになります。

#! /bin/bash -
die() { printf >&2 '%s\n' "$@"; exit 1; }
usage() { die "Usage:" "  $0 "{"lower upp","upper low"}"er [files]"; }

(( $# >= 2 )) || usage 
from=$1 to=$2; shift 2

[[ $from   =  @(upper|lower) ]] &&
[[ $to     =  @(upper|lower) ]] &&
[[ "$from" != "$to"          ]] || usage

shopt -s nullglob dotglob
IFS= ret=0

(( $# > 0 )) || set -- *[[:$from:]]*

for file do
  case $to in
    (upper) newfile=${file^^*};;
    (lower) newfile=${file,,*};;
  esac
  [[ "$file" = "$newfile" ]] ||
    echo mv -i -- "$file" "$newfile" ||
    ret=$?
done
exit "$ret"

echoテストが完了したら削除してください。

おすすめ記事