一个很初级的问题...
我对shell script不是很熟悉。正在使用一个别人编写的sh脚本。
bash xx.sh之后
用read 显示有文字,提示输入参数。(可能不止一层输入)
结果会用printf返回
比如
输入bash xx.sh
输入回车
打印一行字要求输入数字
输入2
输入回车
打印一行字要求输入数字
输入3
输入回车
打印结果
我现在希望能够定期自动地执行(参数固定的),之后把它原本printf的结果写入一个txt。
cron定期执行shell script我是会,
但是不知道怎么在脚本里调用这种脚本(传入参数和收集结果)
我只知道那种命令行接收参数的...
除了直接改这个ssh文件(把read和printf 改为从命令行接受参数、结果写入txt),有其他的办法吗?
编写一个新脚本:调用这个sh文件、传入参数、收集原本printf——这样可以实现吗?如何实现呢?
谢谢!
sh xx.sh >>result.txt << EOF
2
3
EOF
其中EOF跟EOF之间每行都要回车,2、3为你要输入的固定的内容。
bash xx.sh < para.txt
在para.txt中将需要输入的命令行参数都按行给出来就行了吧。
接楼上说法:
crontab
在新的shell脚本中写
echo $1 $2
##调用这个sh文件、传入参数、收集原本printf(print是运行结果,直接用重定向命令就可)
sh xx.sh $1 $2 >result.txt
搜一下《Advanced Bash-Scripting Guide》里的“Here Documents”,应该好理解的。再搞一个脚本封装一下就好了
调用脚本,传入参数并收集结果:echo -e "2\n3" | bash xx.sh >> result.txt
定期执行:watch -n 2 "echo -e "2\n3" | bash xx.sh >> result.txt" (-n 2代表每两秒执行一次)