繁体   English   中英

用ksh和./执行unix shell脚本

[英]Executing a unix shell script with ksh and ./

我试图遍历目录中的一组文件并对其进行某些活动。 当我用ksh执行脚本时,它按预期工作。 但是当我用./执行它时,它失败并显示错误的错误,说了太多的参数。 请帮忙。

ScriptName:Script1

当执行带有ksh Script1 argument1 exec时,它可以按预期工作。 但是,当使用./Script1 argument1执行时, ./Script1 argument1会抛出过多的参数错误。

#!/bin/bash
cd ../SrcFiles

if [ -e *$1* ]
then
for file in *$1*
do
echo $file
if [ $1 == "XXX" ]
then
echo $file >> ABC_"$1".txt
elif [ $1 == "YYY" ]
then
echo $file >>  ABC_"$1".txt
else
echo $file >>  ABC_"$1".txt
fi
done
else
#createadummyfile
fi

这里:

if [ -e *$1* ]

-e需要一个参数。 全局扩展可能会找到多个文件。 如果要检查是否有任何匹配的文件,请使用数组保存全局扩展:

files=(~(N)*"$1"*)
if (( ${#files[@]} == 0)); then
    # no files found
else
    # do stuff to matching files
    for file in "${files[@]}"; do ...
fi

与ksh93一起使用。 ~(N)部分指示ksh如果没有文件匹配,则不要将模式保留为输出(类似于bash的nullglob选项)

暂无
暂无

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

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