평가가 작동하지 않음

평가가 작동하지 않음

난수를 얻기 위해 이 코드를 실행해 보았으나 평가가 작동하지 않는 것 같습니다. 이것이 제 코드입니다.

#!/bin/bash

# Sequencia alfanumerica de 12 carateres aleatoriamente(maiusculas e minusculas)

파일="/home/ruimachado/password.txt"
Oncepass="/home/ruimachado/once_pass.txt"
randompasswd=$(cat /dev/urandom | tr -dc '1-9' | 접기 -w 1 | 머리 -n 1 > $oncepass)
onlytail=$(tail-1 $oncepass)
패스=$(tail-1$file)
testename=$(grep -R $onlytail $file)


if [ $onlytail != "$testename" ]
    그 다음에
    echo "ecoar para o 파일을 확인하세요"
    에코 $onlytail >> "$file"
    기타    
    에코 "나는 존재한다"
    에코 "$onlytail"

필리핀 제도
$randompasswd 평가
에코 "$onlytail"
에코 "핌"
0번 출구

산출:

  1. 번호가 존재하지 않는 경우
ecoar para o 파일을 찾으세요
1
  1. 숫자가 존재하는 경우
나는 존재한다

그들은 나에게 같은 번호를 주었다. 누구든지 나를 도울 수 있다면 감사하겠습니다.

내 영어로 미안해

답변1

의지 는 비어 있기 eval때문에 아무것도 하지 않을 것입니다 .$randompasswd

randompasswd다음으로 설정한 항목

randompasswd=$(cat /dev/urandom | tr -dc '1-9' | fold -w 1 | head -n 1 > $oncepass)

내부 명령은 $(...)출력을 생성하지 않으므로(출력이 파일로 리디렉션되기 때문에) $randompasswd빈 문자열이 됩니다.

eval실제로 임의의 문자열을 실행하고 싶지 않기 때문에 괜찮습니다 .

이 외에도 $onlytailin if- 문과 같이 큰따옴표로 묶어야 하는 따옴표가 없는 변수 확장이 많이 있습니다(공백이 포함된 경우 구문 오류가 발생합니다).

이 코드로 무엇을 하려는지 모르기 때문에 많이 말할 수 없습니다.

12개의 영숫자로 구성된 비밀번호 스트림을 생성하려면:

tr -dc '[:alnum:]' </dev/urandom | fold -w 12

다음 중 첫 번째를 선택하십시오.

tr -dc '[:alnum:]' </dev/urandom | fold -w 12 | head -n 1

100개의 고유한 비밀번호를 생성하려면(그리고 비밀번호가 고유한지 확인하세요):

while true; do
    tr -dc '[:alnum:]' </dev/urandom | fold -w 12 | head -n 100 | sort -u -o password.list
    if [ "$( wc -l <password.list )" -eq 100 ]; then
        break
    fi
done

이는 100개의 비밀번호를 생성하고 이를 정렬(중복 제거)하는 것으로 시작됩니다. 그런 다음 생성된 파일에 100줄이 있는지 테스트합니다. 그렇지 않은 경우 전체 작업을 다시 수행하고, 그렇지 않으면 루프를 종료합니다. 파일이 password.list있으면 덮어쓰게 됩니다.

기존 파일이 있고 password.list파일에 아직 존재하지 않는 비밀번호를 생성(및 추가)하려는 경우:

while true; do
    newpassword=$( tr -dc '[:alnum:]' </dev/urandom | fold -w 12 | head -n 1 )
    if ! grep -q -F "$newpassword" password.list; then
        printf 'New password generated: %s\n' "$newpassword"
        printf '%s\n' "$newpassword" >>password.list
        break
    fi
done

관련 정보