我知道以前已经有人问过这个问题,但几乎只提供了解决方法。还没有解决我的问题。
我正在尝试创建自己的.sh
文件,它将生成一个apk
.使用 jarsigner 后,它会要求输入我的密钥库的密码。现在这部分的安全性并没有发挥作用,所以我只是想知道,我怎样才能(删除我的文件的密码.keystore
或以纯文本形式输入密码)实现这一点?
完整命令:
jarsigner -sigalg SHA1withRSA -digestalg SHA1 -verbose -keystore keyForApk.keystore
apk/android-release-unsigned.apk alias_name
然后它提示我以下内容:
Enter Passphrase for keystore:
现在,我可以通过哪个命令在 jarsigner 命令之后动态输入此命令?
答案1
你可以使用预计自动输入密码的实用程序。创建启动器脚本auto-jar.sh
:
#! /usr/bin/expect
# Wait for finish forever after send password
set timeout -1
# Put your jarsigner command here
spawn jarsigner ...
expect "Enter Passphrase for keystore: "
send "your jar password\r"
# Wait for jarsigner command finish
expect eof
# Return relevant exit code of jarsigner command
# , useful if you want continue next command only after signed successfully with `&&`
foreach {pid spawnid os_error_flag exit_code} [wait] break
exit "$exit_code"
然后chmod +x auto-jar.sh
使其可执行并使用./auto-jar.sh
.或者运行为expect auto-jar.sh
.
答案2
mysqldump
想要一个密码,但我不想将其硬编码到脚本中,除了其他问题之外,当您更改密码时,从维护的角度来看,这可能会很痛苦。
由于我使用 Docker-Compose“秘密”文件将 MariaDB root 密码保留在 Git 之外,因此我只是cat
将其放入扩展变量中,并且命令执行时不会提示用户输入:
mysqldump -h192.168.2.2 -p"$(cat /docker-compose-dir/mariadb_root_pswd.txt)" -uroot wordpressDBname > /backupsDirectory/wordpressDBname_`date +%Y%m%d-%H:%M:%S`.sql
该解决方案还可以使 root 密码远离我的 bash 脚本。使用 Ubuntu 20.04 LTS 和mariadb-client