从 bash_profile 运行 shell 命令时出现“需要文件名参数”警告

Rob*_*bin 2 unix bash 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
}
Run Code Online (Sandbox Code Playgroud)

它有效,成功打开或运行脚本,但它给了我这个错误:

-bash: .: filename argument required
.: usage: . filename [arguments]
Run Code Online (Sandbox Code Playgroud)

Ian*_*rts 5

删除.行:

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

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

. set_env.sh
Run Code Online (Sandbox Code Playgroud)

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