要求:
因此,它必须同时支持文件和数字作为参数
下面是我尝试编写的代码,但在下面的for循环中,所有数字都打印成字符串,但我需要for循环运行三次,因为输入值为3。 如何将它作为shell脚本中数组的一部分
Iam相对较新的shell脚本
输出:
在任何一种情况下,for循环必须运行参数次数(filedata确定参数或直接输入) 如果存在任何不可预见的错误,请提供建议
#!/bin/bash
echo -e $@ 2>&1 ;
myFile=$1 ; // As the first parameter will be a file
#[ -f "$myFile" ] && echo "$myFile Found" || echo "$myFile Not found"
if [ -f "$myFile" ]; then
tcId=`cat $@`;
echo $tcId;
else
tcId=$@;
echo $tcId;
fi
# Execute each of the given tests
for testCase in "$tcId"
do
echo "Test Case is "$testCase ;
done
答案 0 :(得分:0)
我使用流程替换来"假装"显式参数在文件中。
while IFS= read -r testCase; do
echo "Test case is $testCase"
done < <( if [ -f "$1" ]; then
cat "$1"
else
printf "%s\n" "$@"
fi
)
如果您对脚本的调用方式很灵活,我会将其简化为仅从标准输入中读取测试用例
while IFS= read -r testCase; do
echo "Test case is $testCase"
done
并以两种方式之一调用它,既不使用命令行参数:
sh Test.sh < myFile.txt
或
sh Test.sh <<TESTCASES
433
434
434
TESTCASES