"需要文件名参数"从bash_profile运行shell命令时发出警告

时间:2015-03-10 14:07:14

标签: bash unix terminal sh

我在我的Mac终端中自定义了.bash_profile。我想创建一个运行ruby文件或在文本编辑器中打开它的函数,具体取决于我的参数。

我很擅长使用终端而不仅仅是安装东西。

这是我到目前为止所得到的:

scratchpad(){
if [ $1 = run ]; then
    ruby ~/Programming/ruby/scratchpad.rb
    .
else
    open -a $1 ~/Programming/ruby/scratchpad.rb
    .
fi
}

它可以正常打开或运行脚本,但它给了我这个错误:

-bash: .: filename argument required
.: usage: . filename [arguments]

1 个答案:

答案 0 :(得分:3)

删除.行:

scratchpad(){
  if [ $1 = run ]; then
    ruby ~/Programming/ruby/scratchpad.rb
  else
    open -a $1 ~/Programming/ruby/scratchpad.rb
  fi
}

在shell中,.本身就是一个内置命令,是" source"的别名,用于读取shell脚本并在当前shell中执行其命令而不是产生子shell,通常用于设置您想要在以后使用的环境变量的脚本

. set_env.sh

您收到的错误消息是抱怨您没有提供.命令所期望的文件名参数。