Bash 进程替换在 OS X 上不能作为“root”运行

Bash 进程替换在 OS X 上不能作为“root”运行

OS X 10.6.8,如果我使用 Bash Process Substitution 作为“root”,它就不起作用。

  • 应该是这样吗?
  • 为什么?

注意:这就是我的意思...“<(list)”

mysql -D robottinosino < <(echo 'select robot from tino_sino;') 

/* 无可否认,这是一个人为的例子,因为你可以使用一个简单的管道交换 echo 和 mysql ...我想不出更好的例子 */

编辑:

  • 我以 root 身份登录,如下所示:

    “须藤苏——”

(顺便说一下,如果我想有更好的方法吗停留已登录?)

  • 我是不是在 Bash 上,所以我的问题真的很愚蠢,下面的评论立即抓住了问题! :(

echo $0 产生“-sh”:(

我想这个问题现在可以删除或变形为:

“如何使用 bash 以‘root’身份正确登录?” (也许编辑 /private/etc/passwd?这似乎不起作用。或者... sudo bash -l?)

答案1

如果您想更改外壳,请运行chsh -s /bin/bash

如果您想在以 root 身份登录时运行 shell 一次,只需运行bash/bin/bash

chsh更改 root shell 后:

# Changing user information for root.
# Use "passwd" to change the password.
##
# Open Directory: /Local/Default
##
Login: root
Uid [#]: 0
Gid [# or name]: 0
Generated uid: FFFFEEEE-DDDD-CCCC-BBBB-AAAA00000000
Home directory: /var/root
Shell: /bin/bash
Full Name: System Administrator
Office Location:
Office Phone:
Home Phone:

答案2

如果您不使用 bash,则无法使用该 bash 功能。

您可以开始使用sudo bashroot 来代替,或者sudo bash -l使用登录 shell 来 root 来读取 bash 配置。

相关内容