Bash:只允许Pipe(|)或Redirect(<)传递数据,否则显示用法
发布时间:2020-12-15 21:14:11 所属栏目:安全 来源:网络整理
导读:我有一个脚本,它接受了几个参数. 现在,我已将脚本修改为除多个文件名以外的操作. 我还希望在通过管道(|)或重定向输入()接收输入时执行此脚本. 但是,当不提供上述三个输入时,我不希望脚本在终端上等待输入,而是显示使用说明. 我使用以下功能: # PIPED CONTEN
我有一个脚本,它接受了几个参数.
现在,我已将脚本修改为除多个文件名以外的操作. 我还希望在通过管道(|)或重定向输入(<)接收输入时执行此脚本. 但是,当不提供上述三个输入时,我不希望脚本在终端上等待输入,而是显示使用说明. 我使用以下功能: # PIPED CONTENT if [ "$#" == "0" ]; then READINPUT="1" if [ "x$TEXTINPUT" == x"" ]; then READINPUT=1 TMPFL=`tempfile -m 777` while read data; do echo "${data}" >> $TMPFL done TEXTINPUT="`cat $TMPFL`" rm $TMPFL fi # if [ "x$TEXTINPUT" == x"" ]; then # if [ "$#" == "0" ]; then usage; fi # fi fi 任何帮助表示赞赏. 问候 解决方法if test -t 0; then echo Ignoring terminal input. else process - fi -t test将文件描述符作为参数(0是stdin),如果是终端则返回true. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读