터미널에서 명령을 실행할 수 있는데 F5 Big IP CLI 자체 생성 파일 스크립트가 작동하지 않는 이유는 무엇입니까?

터미널에서 명령을 실행할 수 있는데 F5 Big IP CLI 자체 생성 파일 스크립트가 작동하지 않는 이유는 무엇입니까?

다음은 f5cli 및 chmod +x f5cli 실행 파일로 저장된 스크립트입니다. F5FPC_HOST 환경 변수를 사용하여 호스트 URL 값을 선택합니다.

#!/bin/sh

user=$(echo "" | dmenu -p "Enter user:")
secret="'$(echo "" | dmenu -P -p  "Enter secret(PIN, OTP, Password):")'"

f5fpc --start -u $user -p $secret -t $F5FPC_HOST

변수값 대체는 문제가 되지 않으며, echo/notify-send에 데이터를 출력하여 확인하였습니다. bin/sh를 bin/zsh 또는 bin/bash로 변경해 보았습니다.

터미널에서 실행하는 명령

f5fpc --start -u user -p 'XXXX123456PASSWORD' -t https://abc.com

답변1

다음을 수행할 수 있습니다.

user="$(printf "" | dmenu -p "Enter user:")"
pass="$(printf "" | dmenu -P -p "Enter secret(PIN, OTP, Password):")"

f5fpc --start -u "$user" -p "$pass" -t "$F5FPC_HOST"

printf ""dmenu가 stdin을 목록으로 읽는 것을 방지하는 데 사용됩니다 . echo개행 문자가 추가되고 dmenu빈 목록 항목으로 처리됩니다.

그 외에도 f5fpcargv의 비밀번호를 덮어썼는지 확인해야 합니다. 예를 들어 비밀번호가 전달되지 않도록 해야 합니다 ps.

f5fpc이 경우 쉘에서 스크립트를 열고 비밀번호를 입력하는 것이 가장 좋습니다.

답변2

고쳐지세요. 감사해요무루인용 문제를 지적합니다.

#!/bin/sh

user=$(echo "" | dmenu -p "Enter user:")
secret="$(echo "" | dmenu -p  "Enter secret(PIN, OTP, Password):")"

cmd="f5fpc --start -u $user -p '$secret' -t $F5FPC_HOST"

eval "$cmd"

관련 정보