我正在尝试在将“if”设置为变量的 bash 脚本中获取 dd 命令。变量可能是 /dev/zero 或者可能像 <(yes $'\01' | tr -d "\n") 一样复杂
我似乎可以让后者工作。
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
在脚本中它工作正常。
我确定需要进行一些转义,但我离 bash 专家还很远,无法弄清楚如何做到这一点!
更新:尝试以下建议
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