私は次のことを思い出しました。
#!/bin/bash
FILE_NAME="$0"
EXTENSION=".sh"
FILE_NAME_MOD="$FILE_NAME$EXTENSION"
if [[ "$0" != "FILE_NAME_MOD" ]]; then
cp "$0" | sed 's/\([^.sh]\)$/\1.sh/g' $0
fi
明らかに問題があるようですが、解決策を見つけるのに役立ちます。
答え1
次の文章を試してくださいcase
。
FILE_NAME=$0
EXTENSION='.sh'
FILE_NAME_MOD="$FILE_NAME$EXTENSION"
case "$FILE_NAME" in
*"$EXTENSION") ;;
* ) mv -i "$FILE_NAME" "$FILE_NAME_MOD" &&
printf '%s\n' "file has been renamed to '$FILE_NAME_MOD'" ;;
esac
FILE_NAME
まだ終わっていEXTENSION
ない場合FILE_NAME_MOD