有人可以从AIX bash脚本解释我这个脚本行:
#!/bin/bash
touch /tmp/</.D2D
我想文件/.D2D中的行(项目)将被读取,tmp目录下将触及的文件:
当/.D2D文件的内容为
时file1
file2
然后将执行以下操作:
touch /tmp/file1
touch /tmp/file2
#!/bin/bash
PM=text
FILELIST=/tmp/$PM.</.filelist
这里的FILELIST是一个数组,其中/.filelist的行与/tmp/text.line1OfFilelistfile和/tmp/text.line2OfFilelistfile连接起来等等......
我的理解是对的吗? 感谢
答案 0 :(得分:1)
触摸无法从Stdin读取,因此输入重定向除了bash检查是否存在要重定向的文件之外没有其他效果。因此代码大致相当于
if [[ -f /.DSD ]]
then
touch /tmp
else
echo bash: /.DSD: No such file or directory 1>&2
fi
到目前为止的理论。在实践中,我猜这行中有一个拼写错误。
答案 1 :(得分:0)
man page for touch没有提到touch命令从stdin中读取任何内容。因此,命令不会触及列表中的任何文件,它们只触摸直接在命令行上提供的文件。
要确认这一点,请使用strace,ktrace,truss等工具运行bash脚本。他们会注销所有发生的系统调用。
答案 2 :(得分:0)
好的,那些回答的人的观点向我展示了正确的方法。上面的例子不起作用。脚本文件,我目前analazing里面有格式/语法错误。所以&#34;