echo "Hello" > $XYZ
echo ${?}
如果我在任何.sh文件中复制粘贴这两行,脚本工作正常,没有任何问题。第二行中的${?}
返回0. $XYZ
可以替换为任意随机字符串。无需定义或初始化变量。
但是,相同的代码对某些用户不起作用。第一行是抛出错误" scriptname.sh[425]: : cannot open
"。
${?}
返回1.
为什么同一段代码为不同的用户提供不同的结果?
注意:我们在服务器" IBM / AIX RISC System / 6000"
中遇到此问题答案 0 :(得分:0)
变量XYZ需要保存非空字符串,以便shell能够解析重定向。如果你希望它默认为没有任何结果,那么可能会将它初始化为/dev/null
(这是我想象你可能期望重定向到没有任何东西可以完成;但它没有)。
答案 1 :(得分:0)
确保以正确的形式编写XYZ的赋值语句。 e.g:
XYZ="fileName"
echo "Hello" > $XYZ
...
XYZ =“fileName”没有空格..我不知道,但这是我脑海中唯一的问题
答案 2 :(得分:0)
我认为AIX中的不同用户无法访问日志文件($ XYZ),请尝试将755提供给日志文件目录,并确保您的文件具有足够的权限以便其他人执行(755再次)