Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将$(命令)回显到bash概要文件中_Bash - Fatal编程技术网

如何将$(命令)回显到bash概要文件中

如何将$(命令)回显到bash概要文件中,bash,Bash,我试图将eval“$(rbenv init-”附加到我的bash配置文件中 ec2-user@ip-172-31-46-129 ~ % sudo su - buildkite-agent +-zsh:43> sudo su - buildkite-agent rbenv: no such command `sh-' -bash: eval: line 31: syntax error near unexpected token `rehash' -bash: eval: line 31:

我试图将
eval“$(rbenv init-”
附加到我的bash配置文件中

ec2-user@ip-172-31-46-129 ~ % sudo su - buildkite-agent 
+-zsh:43> sudo su - buildkite-agent
rbenv: no such command `sh-'
-bash: eval: line 31: syntax error near unexpected token `rehash'
-bash: eval: line 31: `  rehash|shell)'

The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.apple.com/kb/HT208050.
ip-172-31-46-129:~ buildkite-agent$ cat ~/.bash_profile 
export RUBY_CONFIGURE_OPTS="--with-openssl-dir=/usr/local/opt/openssl@1.1"
eval "export PATH="/Users/ec2-user/.rbenv/shims:${PATH}"
export RBENV_SHELL=zsh
source /usr/local/Cellar/rbenv/1.1.2/libexec/../completions/rbenv.zsh
command rbenv rehash 2>/dev/null
rbenv() {
  local command
  command="${1:-}"
  if [ "$#" -gt 0 ]; then
    shift
  fi

  case "$command" in
  rehash|shell)
    eval "$(rbenv "sh-$command" "$@")";;
  *)
    command rbenv "$command" "$@";;
  esac
}"
(我正在尝试按照此说明操作)

这是自动化过程的一部分,因此我无法访问GUI或使用编辑器。但是当我回显命令$(rbenv init-)时,就会执行并附加一堆东西。我如何将其作为纯文本进行回显

这就是我现在拥有的

ec2-user@ip-172-31-46-129 ~ % cat /tmp/install-rbenv.sh 
+-zsh:41> cat /tmp/install-rbenv.sh
#!/bin/bash
sudo -i -u buildkite-agent bash << EOF
echo "export RUBY_CONFIGURE_OPTS=\"--with-openssl-dir=$(brew --prefix openssl@1.1)\"" >> /Users/buildkite-agent/.bash_profile
echo 'eval "$(rbenv init -)"' >> /Users/buildkite-agent/.bash_profile
EOF
echo "Done"
检查bash配置文件

ec2-user@ip-172-31-46-129 ~ % sudo su - buildkite-agent 
+-zsh:43> sudo su - buildkite-agent
rbenv: no such command `sh-'
-bash: eval: line 31: syntax error near unexpected token `rehash'
-bash: eval: line 31: `  rehash|shell)'

The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.apple.com/kb/HT208050.
ip-172-31-46-129:~ buildkite-agent$ cat ~/.bash_profile 
export RUBY_CONFIGURE_OPTS="--with-openssl-dir=/usr/local/opt/openssl@1.1"
eval "export PATH="/Users/ec2-user/.rbenv/shims:${PATH}"
export RBENV_SHELL=zsh
source /usr/local/Cellar/rbenv/1.1.2/libexec/../completions/rbenv.zsh
command rbenv rehash 2>/dev/null
rbenv() {
  local command
  command="${1:-}"
  if [ "$#" -gt 0 ]; then
    shift
  fi

  case "$command" in
  rehash|shell)
    eval "$(rbenv "sh-$command" "$@")";;
  *)
    command rbenv "$command" "$@";;
  esac
}"

显然,您不想使用编辑器编辑
.bash\u配置文件
文件,或者您:-D

将要附加到文件中的文本放在撇号中,它将逐字添加到文件中。shell不会对用撇号包装的参数进行任何扩展

echo'eval“$(rbenv init-”>~/.bash\u配置文件

仅此而已。

显然,您不想使用编辑器编辑
.bash\u配置文件,或者您:-D

将要附加到文件中的文本放在撇号中,它将逐字添加到文件中。shell不会对用撇号包装的参数进行任何扩展

echo'eval“$(rbenv init-”>~/.bash\u配置文件

仅此而已。

在第一个EOF周围使用撇号,即
'EOF'
而不是
EOF
bash
区分了这两者,如果使用撇号版本,则不会对内容进行评估

> bash << EOF > test.sh
echo '$(date)'
EOF
> cat test.sh
Mon 12 Apr 2021 08:08:53 PM CEST
>bash test.sh
回显“$(日期)”
EOF
>cat test.sh
2021年4月12日星期一08:08:53下午CEST
>bash test.sh
回显“$(日期)”
EOF
>cat test.sh
$(日期)

在第一个EOF周围使用撇号,即
'EOF'
而不是
EOF
bash
区分了这两者,如果使用撇号版本,则不会对内容进行评估

> bash << EOF > test.sh
echo '$(date)'
EOF
> cat test.sh
Mon 12 Apr 2021 08:08:53 PM CEST
>bash test.sh
回显“$(日期)”
EOF
>cat test.sh
2021年4月12日星期一08:08:53下午CEST
>bash test.sh
回显“$(日期)”
EOF
>cat test.sh
$(日期)

如何尝试将该命令附加到Bash配置文件中?使用编辑器。@axiac没有访问编辑器的权限,让我更新帖子以澄清,谢谢。拿出
eval
?你为什么要评估它?您希望文件中有什么具体的输出?@madPhysician在安装rbenv后,它会提示我将eval“$(rbenv init-”添加到您的bash配置文件以自动加载rbenv…”您如何尝试将该命令附加到bash配置文件中?使用编辑器。@axiac没有访问编辑器的权限,让我更新帖子以澄清,谢谢。拿出
eval
?你为什么要评估它?您希望文件中有什么具体的输出?@MadPhysicast在安装rbenv后,它会提示我“将eval“$(rbenv init-”添加到您的bash配置文件中以自动加载rbenv…”我已经尝试了此操作,但命令仍在使用:(更新问题以显示详细的登录)我已经尝试了此操作,但命令仍在使用:(更新了问题以显示详细日志就是这样!谢谢!就是这样!谢谢!
> bash << 'EOF' > test.sh
echo '$(date)'
EOF
> cat test.sh
$(date)