Bash 根据应用程序参数模拟从文件读取
我正在使用一个命令行应用程序(Bash 根据应用程序参数模拟从文件读取,bash,shell,arguments,command-line-interface,sh,Bash,Shell,Arguments,Command Line Interface,Sh,我正在使用一个命令行应用程序(geth),它接受参数--password,该参数要求包含密码的文件的有效路径,即: geth --password /some/path/to/password/file 我试图在命令行中指定密码,而不是将其保存在文件中,例如: geth --password `echo P@ssWordHer3` 上述操作不起作用,因为geth正在搜索名为P@ssWordHer3,它不存在: 致命:无法读取密码文件:打开P@ssWordHer3:没有这样的文件 或目录 我正
geth
),它接受参数--password
,该参数要求包含密码的文件的有效路径,即:
geth --password /some/path/to/password/file
我试图在命令行中指定密码,而不是将其保存在文件中,例如:
geth --password `echo P@ssWordHer3`
上述操作不起作用,因为geth
正在搜索名为P@ssWordHer3
,它不存在:
致命:无法读取密码文件:打开P@ssWordHer3:没有这样的文件
或目录
我正在考虑创建一个shell脚本,该脚本将接受密码作为参数并将其输出,但我猜它也不起作用,因为geth
将尝试读取文件内容,而不是输出
知道如何解决这个问题吗?这就是众所周知的ksh和bash功能的用途:
这就是众所周知的ksh和bash功能的用途:
谢谢你的回答,但我得到了一个错误:
sh:-c:0行:意外标记附近的语法错误“(“
。正如答案所说,这是一个ksh和bash特性。sh
不支持它。(另请参阅第一个代码示例中的注释:“也适用于ksh,但不适用于基线POSIX/bin/sh”)是的,我知道了,我用的是<代码> CENTSO7X64 < /Cord>,有什么想法在<代码> /BI/SH < /C>上模仿这个行为?考虑<代码> PrtTf'%s'P@sswordHer3“而不是echo-n”P@sswordHer3“
---necho的参数只是非常松散的POSIX标准化(POSIX说,echo
允许在出现时以未指定的方式进行操作)。顺便说一句,请参阅用/bin/sh模拟进程替换的示例——尽管这不是一个特别好的示例(例如易受符号链接攻击)。感谢您的回答,但我得到了一个错误:sh:-c:0行:意外标记附近的语法错误。“
。正如答案所说,这是ksh和bash特性。sh
不支持它。(另请参见第一个代码示例中的注释:“也适用于ksh,但不适用于基线POSIX/bin/sh”)是的,我知道了,我用的是<代码> CENTSO7X64 < /Cord>,有什么想法在<代码> /BI/SH < /C>上模仿这个行为?考虑<代码> PrtTf'%s'P@sswordHer3“而不是echo-n”P@sswordHer3“
---necho的参数只是非常松散的POSIX标准化(POSIX说,echo
在出现时允许以未指定的方式进行操作)。顺便说一句,请参阅用/bin/sh模拟进程替换的示例——尽管这不是一个特别好的示例(例如易受符号链接攻击)。
#!/usr/bin/env bash
# ^^^^- also works on ksh, but not on baseline-POSIX /bin/sh
geth --password <(echo 'P@sswordHer3')
#!/usr/bin/env zsh
geth --password =(echo 'P@sswordHer3')