HP-UNIX上的Shell脚本错误
执行以下脚本时,我遇到一个错误:HP-UNIX上的Shell脚本错误,shell,unix,Shell,Unix,执行以下脚本时,我遇到一个错误: Syntax error at line 1 : `(' is not expected. 其中列表文件包含一些其他文件的名称 请帮助我找到一些解决方案。您的列表文件可能包含一个带有特殊字符的文件名,在执行cat命令时,该文件名没有正确转义。尝试使用-T参数将列表文件传递给tar,这样文件名就不必在命令行上展开: tar -cvf $HOME/mine.tar -T /tmp/$LOGNAME/List 在执行cat命令时,列表文件可能包含一个带有特殊字符的
Syntax error at line 1 : `(' is not expected.
其中列表文件包含一些其他文件的名称
请帮助我找到一些解决方案。您的列表文件可能包含一个带有特殊字符的文件名,在执行
cat
命令时,该文件名没有正确转义。尝试使用-T
参数将列表文件传递给tar,这样文件名就不必在命令行上展开:
tar -cvf $HOME/mine.tar -T /tmp/$LOGNAME/List
在执行
cat
命令时,列表文件可能包含一个带有特殊字符的文件名,但该文件名没有正确转义。尝试使用-T
参数将列表文件传递给tar,这样文件名就不必在命令行上展开:
tar -cvf $HOME/mine.tar -T /tmp/$LOGNAME/List
不要使用
cat
生成文件列表tar
通常支持--from file
(-T
)选项直接处理列表中的文件:
sudo su - user1 -c "cd $HOME ; tar -cvf $HOME/mine.tar --files-from /tmp/$LOGNAME/List"
如果您的TAR版本没有,请考虑使用XARGS代替:
sudo su - user1 -c "cd $HOME ; xargs tar -cvf $HOME/mine.tar < /tmp/$LOGNAME/List"
sudo su-user1-c“cd$HOME;xargs tar-cvf$HOME/mine.tar
不要使用cat
生成文件列表tar
通常支持--from file
(-T
)选项直接处理列表中的文件:
sudo su - user1 -c "cd $HOME ; tar -cvf $HOME/mine.tar --files-from /tmp/$LOGNAME/List"
如果您的TAR版本没有,请考虑使用XARGS代替:
sudo su - user1 -c "cd $HOME ; xargs tar -cvf $HOME/mine.tar < /tmp/$LOGNAME/List"
sudo su-user1-c“cd$HOME;xargs tar-cvf$HOME/mine.tar
echo
单击命令(即echo“cd$HOME;…”
)并查看它显示的内容。具体而言,/tmp/$LOGNAME/List
的内容是什么?此外,是否存在与所讨论片段相关的上下文?脚本在这一点上做了什么?我将大胆猜测,$LOGNAME包含一个(或该列表文件的内容也包含在echo
命令上的do.question)(即echo“cd$HOME;…”
)看看它显示了什么特别是,/tmp/$LOGNAME/List
的内容是什么?还有,有问题的代码段是否有上下文?脚本在这一点上做了什么?我将大胆猜测,$LOGNAME包含如果List
包含太多的文件名,那么xargs
版本上的问题也将失败…当然,这个限制相当高,但仍然有可能…如果List
包含太多的文件名,xargs
版本将失败…当然,这个限制相当高,但是这仍然是一种可能性。。。