Bash脚本
我这里有个小问题 我写了一个剧本,效果很好。但有一个小问题 该脚本接受1或2个参数。第二个参数是一个.txt文件 如果您编写类似于Bash脚本,bash,input,arguments,Bash,Input,Arguments,我这里有个小问题 我写了一个剧本,效果很好。但有一个小问题 该脚本接受1或2个参数。第二个参数是一个.txt文件 如果您编写类似于my_script arg1 test.txt的内容,脚本将正常工作。但是当您编写myu脚本arg1
my_script arg1 test.txt
的内容,脚本将正常工作。但是当您编写myu脚本arg1
时,它不会
下面是我的代码演示:
#!/bin/bash
if [[ $# = 0 || $# > 2 ]]
then
exit 1
elif [[ $# = 1 || $# = 2 ]]
then
#do stuff
if [ ! -z $2 ]
then
IN=$2
else
exit 3
fi
fi
cat $IN
如何使用
myu脚本arg1
?如果您只想更改调用myu脚本的方式,那么只需让cat
读取myscript
的标准输入,不给它任何参数:
#!/bin/bash
if [[ $# != 0 ]]
then
exit 1
fi
cat
如果希望脚本与myscript arg1
或myscript arg1 test.txt
一起工作,只需检查参数的数量并相应地执行操作即可
#!/bin/bash
case $# in
0) exit 1 ;;
1) cat ;;
2) cat $2 ;;
esac
如果你看看你的同事们是如何使用“阅读”来获取管道内容的
做这样的事:
while read line; do
echo -n "$line"
done <"${1}"
读行时;做
echo-n“$line”
您了解脚本当前是如何工作的吗?解析参数如何,如下所示: