0

ユーザーに 3 つの数字 (例: 123) を要求する bash スクリプトがあります。

file1、file2、file3 を作成するためにこれらの番号を区切る方法に行き詰まっています。それらが一意であるかどうかも判断する必要があります。

どんな助けでも大歓迎です。

必要に応じて、bash スクリプトを投稿できます。

! /bin/bash
clear
echo -n "Enter three digits number: "
read number

echo $number | grep "^[0-9][0-9][0-9]$"
if [ "$?" -eq 1 ] 
then
   echo "Error!! Please enter only 3 numbers."
   exit 1
fi

if [ -d ~/a2/numbers ]
then
   rm -r ~/a2/numbers
fi
mkdir ~/a2/numbers

if [ ! -e ~/a2/products ]
then
   echo "Error the file \'products\'! does not exist"
   exit 1
fi
echo ' '
cat ~/a2/products

echo ' '
cut -f2 -d',' ~/a2/products > ~/a2/names
cat ~/a2/names

echo "I have $(cat ~/a2/names | wc -l) products in my product file"
echo ' '
4

2 に答える 2

2

fold文字列を文字ごとに分割するコマンドを使用できます。例:

echo ${number} | fold -w1

それらが一意かどうかを確認するには、ifステートメントを使用するだけです。あなたの場合、1桁の数字は3つしか許可されていないからです。

于 2012-08-09T04:14:36.913 に答える
0
#!/bin/bash
read -p "enter 3 numbers: " nums
if [[ $nums != [0-9][0-9][0-9] ]]; then
  echo "digits only please"
  exit
fi

read n1 n2 n3 < <(sed 's/./& /g' <<< $nums)

if ((n1 == n2)) || ((n1 == n3)) || ((n2 == n3)); then
  echo "no duplicate numbers"
  exit
fi
于 2012-08-09T05:28:18.807 に答える