shell脚本 - 接受输入并开始在后台运行

时间:2015-03-20 11:30:31

标签: linux bash shell

我正在使用脚本,它接受2个输入(睡眠时间和服务器应该重新启动)。

脚本工作正常。但是一旦我们给出输入脚本应该开始在后台运行。请帮忙

#!/bin/bash
echo " pls enter sleep time:"
read sleeping
echo "pls enter server to take archive"
read server
for i in $(cat /moes/home/ranjith/scripts/list)
do
    path=$i
    output="nohup dsmc arch $path -subdir=yes >/tsm/backuplogs/$(basename $path)_\`date +%d%m%y_%H_%M\`.log &"
    ssh $server $output
    sleep $sleeping
done

它像这样打击了


[root@iitmtsm04 scripts]# ./archive.in
pls enter sleep time:
12m
pls enter server to take archive
iitmtsm04

2 个答案:

答案 0 :(得分:0)

这是一个更好的主意:

#!/bin/bash
if [ -z "$1" ] || [ -z "$2" ]; then
    echo "Usage: $0 [sleep time] [server]"
    exit 1
fi
sleeping="$1"
server="$2"
for i in $(cat /moes/home/ranjith/scripts/list)
do
    path=$i
    output="nohup dsmc arch $path -subdir=yes >/tsm/backuplogs/$(basename $path)_\`date +%d%m%y_%H_%M\`.log &"
    ssh $server $output
    sleep $sleeping
done

你可以像这样调用它:

[root@iitmtsm04 scripts]# ./archive.in 12m iitmtsm04 &

最后的&指示shell在后台运行给定的命令。

有关命令行参数的详细信息,如果您有兴趣:http://tldp.org/LDP/abs/html/othertypesv.html

答案 1 :(得分:0)

使用screen命令实现目标。

[root@iitmtsm04 scripts]# screen
[root@iitmtsm04 scripts]# ./archive.in

输入输入,然后使用ctrl + ad分离屏幕。

请记住按ctrl + ad而不将手指从ctrl上移开。