Shell中如何将变量作为参数传递给后续命令并实现自动输入
Shell脚本自动给solana-keygen recover传入种子短语的方法
solana-keygen recover ASK运行时会从标准输入读取用户填入的种子短语,不需要额外安装交互模拟工具,直接通过Shell本身的输入重定向能力就能实现自动传参,常用两种写法:
管道传值写法
先把种子短语存在变量中,通过echo输出变量内容,通过管道直接喂给命令的标准输入:# 把引号内内容替换成你自己的种子短语 SEED_WORDS="abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about" echo "$SEED_WORDS" | solana-keygen recover ASK如果命令执行过程中还有额外确认提示(比如确认覆盖文件、确认派生路径需要输入y),用
echo -e加换行符按提示顺序拼接输入内容即可:# 第一行是种子短语,第二行是确认输入y echo -e "$SEED_WORDS\ny" | solana-keygen recover ASKHere Document 写法
这种写法不需要处理转义字符,适合多输入项、种子短语包含特殊字符的场景,稳定性更高:SEED_WORDS="你的完整种子短语" solana-keygen recover ASK << INPUT_EOF $SEED_WORDS y INPUT_EOF两个
INPUT_EOF标记之间的内容会按行顺序依次作为命令的输入,和你手动逐行输入的效果完全一致。
安全提示:不要把种子短语硬编码在脚本中上传到公共仓库,建议从权限为600的本地加密配置文件、系统环境变量读取,执行脚本前确认脚本文件权限仅对当前用户开放,避免助记词泄露导致链上资产损失。
内容的提问来源于stack exchange,提问作者abh1sheke
相关产品推荐
相关产品推荐

