1

谁能建议如何编辑此脚本以执行以下操作:

如果文件夹存在 - “那么你确定要卸载吗?” 如果是 - 执行文件复制,如果不是,则停止脚本。否则 - 找不到文件夹,停止脚本。

if [ -e "/tmp/installpackage" ]
then
    echo "Are you sure you want to uninstall?"
    select yn in "Yes" "No"; do
        case $yn in
            Yes ) 
                echo "Beginning uninstall...";
                cp file1.txt original/path/location;
                break;;
            No ) 
                echo "Stopping uninstall.";
                exit 1;;
        esac
    done
else
    echo "Can't find the folder, package not isntalled."
    exit 1
fi
4

4 回答 4

3

您的代码按预期工作。但是你必须输入1or2而不是yesor no

但是我会将第一行更改为:

if [ -d "/tmp/installpackage" ]

-d测试文件是否存在并且是目录

于 2013-10-01T15:06:56.823 回答
0

我会先尝试测试纾困条件,然后再执行卸载代码:

[ ! -d '/tmp/installpackage' ] && \
echo "Can't find the folder, package not isntalled." && exit 1

echo -n 'Are you sure you want to uninstall? [y|n] '
read answer
[[ ! "$answer" = [Yy] ]] && echo 'Stopping uninstall.' && exit 1

echo 'Beginning uninstall...'
cp file1.txt original/path/location
于 2013-10-01T15:32:40.767 回答
0

我认为在esac你想要的行之后,exit否则你有一个无限循环来问你答案

于 2013-10-01T15:10:24.710 回答
0

尝试

if [ -d "/tmp/installpackage" ]
then
    echo "Are you sure you want to uninstall?"
    select yn in "Yes" "No"; do
        case $REPLY in
            Yes ) 
                echo "Beginning uninstall...";
                cp file1.txt original/path/location;
                break;;
            No ) 
                echo "Stopping uninstall.";
                exit 1;;
            *)
                echo "Incorrect choice";
                break;;
        esac
    done
else
    echo "Can't find the folder, package not installed."
    exit 1
fi
于 2013-10-01T15:13:57.970 回答