如何通过双击将正在执行的脚本从当前文件夹复制到另一个文件夹

如何通过双击将正在执行的脚本从当前文件夹复制到另一个文件夹

我们应该如何将正在执行的脚本从一个文件夹复制到另一个文件夹?

脚本内容为:

#!/bin/sh

zenity --forms --title="Add Friend" \
    --text="Enter information about your friend." \
    --separator="," \
    --add-entry="First Name" \
    --add-entry="Family Name" \
    --add-entry="Email" \
    --add-calendar="Birthday" >> addr.csv

case $? in
    0)
        echo "Friend added.";;
    1)
        echo "No friend added."
    ;;
    -1)
        echo "An unexpected error has occurred."
    ;;
esac

假设我已经保存了上述脚本,如下所示test.shhome/user/Documents/sh/测试文件双击它会将自身复制到meow文件夹中home/user/wow/meow/

答案1

我不确定你为什么要这样做,但你可以比原始副本更优雅地处理这个问题。

mkdir -p $HOME/wow/meow
cp "$(readlink -f $0)" "$HOME/wow/meow"
  • 它正在使用$HOME,所以我们不依赖于硬编码路径(比~脚本替代更可靠)。
  • 我们检查目标目录是否存在(如果不存在则创建它)。
  • 我们获得了实际的脚本位置,而不是依赖于硬编码路径。

答案2

在脚本中添加一行来复制自身:

cp /home/user/Documents/sh/test.sh home/user/wow/meow/

相关内容