我有一个shell脚本
#!/bin/bash
echo "starting"
file="path_to_file/ruby_file.rb"
echo $file
ruby $file
echo "ended"
当我从命令行运行它时它工作正常。
当我在Finder上双击它时,它没有。
我对正在打印的ruby脚本有一些看法,但是我正在进行文件操作(重命名)并且它们没有完成。更重要的是,我收到以下错误:
(我在结束时取消选中会自动关闭会话)
-bash:shell_session_update:找不到命令
结果如下:
/path_to_shell_script/renamer.sh; exit;
starting
/path_to_ruby_script/renamer.rb
ruby is renaming
ruby finished renaming
ended
logout
-bash: shell_session_update: command not found -> This doesn't happen when I run it from the command line.
答案 0 :(得分:1)
从shell运行shell脚本(即在命令行上)时,它具有该shell的上下文,包括当前目录设置和环境变量设置。
当它从取景器运行时,它没有。
如果您使用任何相关文件规范,则可能找不到这些文件。
如果你的问题在运行时只当前目录,那么你可以在脚本本身放一个cd
命令来切换到正确的目录。