我有非常简单的shell脚本
#!/bin/bash
cp -rf /var/www/ksite/app2/* /var/www/ksite/app
echo "----"
echo "done"
但似乎cp命令失败
如果我执行
cp -rf /var/www/ksite/app2/* /var/www/ksite/app
从终端一切正常。有人能告诉我如何在shell脚本中包含cp吗?
由于
答案 0 :(得分:5)
我们似乎怀疑这个脚本是如何失败的。如果没有错误消息,那么这是一个奇怪的消息。我建议:
which cp
cp
(例如/bin/cp
)bash -x script-name
运行您的脚本,看看您是否得到了预期。echo $?
- 如果它为零则它(认为它)起作用。ls -ld /var/www/ksite/app
,也许某人设置了符号链接? . script-name
答案 1 :(得分:1)
答案 2 :(得分:1)
我有类似的问题。是什么帮助了我:
我用windows和putty编写脚本,所以我在行尾有\ r \ n。请确保,您只有\ n符号。
我复制了文件,它在脚本上运行的唯一方法是cp <source_dir>/fileName <dest_dir>/fileName
,而命令行cp <source_dir>/fileName <dest_dir>
也运行良好。
答案 3 :(得分:0)
只是覆盖了所有的基础..请求权限在不同之间进行..即你用sudo / root权限执行一个,另一个用户(不太可能,但我想我会问,因为我们不知道是什么确切的错误是)
答案 4 :(得分:0)
与在 Windows 中创建脚本的 Vladmir 类似的问题。我在linux环境下使用vim新建了一个文件“my_bash_script.sh”,然后将我的脚本内容读入文件中:
:r file_made_in_windows.sh
然后我保存,关闭,然后将文件设置为可执行文件:
chmod 744 my_bash_script.sh
从那里,我运行了脚本:
./my_bash_script.sh
...它奏效了。多么奇怪的问题。我一时糊涂了。