melon_15
melon_15
采纳率75%
2018-07-29 11:48 阅读 1.2k

linux自动执行脚本和收集原本打印的结果?

20

一个很初级的问题...
我对shell script不是很熟悉。正在使用一个别人编写的sh脚本。

bash xx.sh之后
用read 显示有文字,提示输入参数。(可能不止一层输入)
结果会用printf返回
比如

输入bash xx.sh 
输入回车
打印一行字要求输入数字  
输入2 
输入回车 
打印一行字要求输入数字
输入3 
输入回车 
打印结果

我现在希望能够定期自动地执行(参数固定的),之后把它原本printf的结果写入一个txt。

cron定期执行shell script我是会,
但是不知道怎么在脚本里调用这种脚本(传入参数和收集结果)
我只知道那种命令行接收参数的...

除了直接改这个ssh文件(把read和printf 改为从命令行接受参数、结果写入txt),有其他的办法吗?

编写一个新脚本:调用这个sh文件、传入参数、收集原本printf——这样可以实现吗?如何实现呢?

谢谢!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

6条回答 默认 最新

  • 已采纳
    u012874788 从小就很疯 2018-07-30 08:00

    sh xx.sh >>result.txt << EOF
    2
    3
    EOF
    其中EOF跟EOF之间每行都要回车,2、3为你要输入的固定的内容。

    点赞 评论 复制链接分享
  • comeon2010 comeon2010 2018-07-30 02:48

    bash xx.sh < para.txt
    在para.txt中将需要输入的命令行参数都按行给出来就行了吧。

    点赞 评论 复制链接分享
  • foreman2002 foreman2002 2018-07-30 04:13

    接楼上说法:
    crontab

    • * * * * /bin/bash xx.sh >result.txt
      定时 脚本 参数 结果
    点赞 评论 复制链接分享
  • yushu4772 yushu4772 2018-07-30 07:50

    在新的shell脚本中写
    echo $1 $2
    ##调用这个sh文件、传入参数、收集原本printf(print是运行结果,直接用重定向命令就可)
    sh xx.sh $1 $2 >result.txt

    点赞 评论 复制链接分享
  • foreman2002 foreman2002 2018-07-31 04:15

    搜一下《Advanced Bash-Scripting Guide》里的“Here Documents”,应该好理解的。再搞一个脚本封装一下就好了

    点赞 评论 复制链接分享
  • xjw_87 xjw_87 2018-07-31 04:59

    调用脚本,传入参数并收集结果:echo -e "2\n3" | bash xx.sh >> result.txt
    定期执行:watch -n 2 "echo -e "2\n3" | bash xx.sh >> result.txt" (-n 2代表每两秒执行一次)

    点赞 评论 复制链接分享

相关推荐