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 設定。

相關內容