다음은 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
빈 목록 항목으로 처리됩니다.
그 외에도 f5fpc
argv의 비밀번호를 덮어썼는지 확인해야 합니다. 예를 들어 비밀번호가 전달되지 않도록 해야 합니다 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"