繁体   English   中英

此ksh代码如何工作?

[英]How this ksh code is working?

echo "Hello" > $XYZ

echo ${?}

如果我将这两行复制粘贴到任何.sh文件中,则脚本可以正常工作而不会出现任何问题。 第二行中的${?}返回0。 $XYZ可以用任何随机字符串替换。 该变量不需要定义或初始化。

但是,相同的代码对某些用户不起作用。 第一行抛出错误“ scriptname.sh[425]: : cannot open ”。

第二行中的${?}返回1。

是否知道为什么同一段代码为不同的用户提供不同的结果?

注意:我们在服务器“ IBM / AIX RISC System / 6000”中面临此问题。

变量XYZ需要容纳一个非空字符串,以便外壳程序能够解析重定向。 如果您希望将其默认设置为根本不返回任何结果,则可以将其初始化为/dev/null (这是我想象的,您可能期望重定向到任何内容都无法完成;但事实并非如此)。

确保以正确的形式编写XYZ的赋值语句。 例如:

XYZ="fileName"
echo "Hello" > $XYZ
...

XYZ =“ fileName”没有空格。.我不知道,但这是我想到的唯一问题

我会想象AIX中的不同用户无法访问该日志文件($ XYZ),请尝试将755设置为日志文件目录,并确保您的文件具有足够的权限被其他人执行(再次执行755)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM