1

私はこれに2時間取り組んでいますが、運が悪く、常に「不適切な置換」エラーが発生します。

作成したいもの (.sh スクリプト): ファイル (名前) から読み取り、この名前を、スクリプトの引数であるオフセットと長さによって指定された名前の部分文字列に置き換えたいと思います ($1 = オフセット、$2 =長さ)。

次のように動作するはずです(私は思います):new_user=${user:$1:$2}
->ユーザーは.txtから(whileループで)読み取られ、$ 1と$ 2はこの.scの引数です

重要な部分を強調しました:

#!/bin/bash
touch postopek.log
while IFS="," read fullName userName passwordLarge
do
 pass=$(perl -e 'print crypt(&ARGV[0], "password")' $passwordLarge)
 new_up=${fullName:$1:$2} # important line
 sudo useradd -m -p $pass -d /home/$new_up -s /bin/bash $new_up
 [ $? -eq 0] && echo "Made something bla bla not important..." >> postopek.log
 sudo mkdir /home/$new_up/gradivo
 sudo cp -r /home/administrator/vaje/* /home/$new_up/gradivo
 sudo chown -R $new_up:$new_up /home/$new_up/gradivo
done < /home/administrator/seznam.txt
4

1 に答える 1