我们应该如何将正在执行的脚本从一个文件夹复制到另一个文件夹?
脚本内容为:
#!/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.sh
:home/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/