我正在运行bash脚本并遇到错误。我不明白为什么会这样。
#!/bin/bash
./autogen.sh >& $LIB-autogen
mv $LIB-autogen $DATA_DIR/$LIB/
它报告了一条错误消息:
mv: cannot stat `ex-autogen': No such file or directory
autogen.sh是一个生成配置文件的脚本,该脚本运行良好。
如果您需要更多信息,请与我们联系。
感谢。
答案 0 :(得分:1)
加上引号
mv "$LIB-autogen" "$DATA_DIR/$LIB"
来自Charles Duffy:
不知道DATA_DIR,LIB和IFS的确切值(一个 内部shell设置),一个不能判断是否没有操作 双引号是否安全。使用双引号操作 对比,总是安全的,因为字符串分裂和glob 扩张不可能发生。那么,这个答案通常是合理的建议, 因为它排除了可能出现的问题 发生。
答案 1 :(得分:0)
>&
是另一种编写&>
的方法,它本身就是一个相当新的重定向运算符 - 人们可以设想运行一个没有它的bash版本。
./autogen.sh >"$LIB-autogen" 2>&1
...将autogen.sh
的stdout和stderr发送到相应命名的文件的方式更兼容。