- コマンドラインの引数を介してファイル名を下から上に、または上から下に変更するbashスクリプトを作成する必要があります。したがって、コマンドラインに入力すると、次のようになります。
./bashScript ボトムアップ
その後、ディレクトリ内のすべてのファイルを小文字から大文字に変更する必要があります。
また、特定のファイルを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
テストが完了したら削除してください。
答え2
宿題がない場合は、ラリーウォールのものを使用してくださいrename
rename 'y/A-Z/a-z/' *
小文字に変換します。rename 'y/a-z/A-Z/' *
大文字に変換します。
これがすべての言語で動作するかどうかはわかりませんが、これはマニュアルの例です。