变量中进程替换的Bash问题
我试图在bash脚本中获得一个dd命令,并将“if”设置为变量。 变量可以是/dev/zero,也可以是尽可能复杂的变量变量中进程替换的Bash问题,bash,process,substitution,Bash,Process,Substitution,我试图在bash脚本中获得一个dd命令,并将“if”设置为变量。 变量可以是/dev/zero,也可以是尽可能复杂的变量 Bash不会解析变量的内容并将其直接传递给dd,dd不知道如何处理它。 您可以使用“eval”强制Bash解析变量: write_file=“好的..我想我需要在dd前面加一个“eval” 因此: write_file=“trydd”if=$write_file”…只需在线执行即可。看,好的。。所以我只是在刷新浏览器并看到这个之前发布了我自己的答案。哦。哦,这可能与将eval
Bash不会解析变量的内容并将其直接传递给dd,dd不知道如何处理它。 您可以使用“eval”强制Bash解析变量:
write_file=“好的..我想我需要在dd前面加一个“eval”
因此:
write_file=“trydd”if=$write_file”…
只需在线执行即可。看,好的。。所以我只是在刷新浏览器并看到这个之前发布了我自己的答案。哦。哦,这可能与将eval
放在dd命令前面的工作方式相同。谢谢你的帮助!
write_file=/dev/zero
dd if=$write_file bs=2048 seek=1 of=/dev/sda count=524288
write_file="<(yes $'\01' | tr -d "\n")"
dd if=$write_file bs=2048 seek=1 of=/dev/sda count=524288
dd: invalid option -- 'd'
Try `dd --help' for more information.
dd if=<(yes $'\01' | tr -d "\n") bs=2048 seek=1 of=/dev/sda count=524288
write_file="<(yes $'\01' | tr -d \"\n\")"
dd if="$write_file" bs=2048 seek=1 of=/dev/sda count=524288
dd: opening `<(yes $\'\\01\' | tr -d "\\n")': No such file or directory
write_file="<(yes $'\01' | tr -d \"\n\")"
command="dd if=$write_file bs=2048 seek=1 of=/dev/sda count=524288"
eval "${command}"
write_file="<(yes $'\x5a' | tr -d \"\n\")"
eval dd if=$write_file bs=2048 seek=1 of=/dev/sda count=5242