▼スレッド
│
└◇936:.bashrc [test] 02/02 06:29
└◇937:Re:.bashrc [MSだす。] 02/02
└◇938:Re[2]:.bashrcの件で [test] 02/03
└◇939:Re[3]:.bashrcの件で [りう] 02/03
└◇940:Re[4]:.bashrcの件で [test] 02/04
└◇941:Re[5]:.bashrcの件で [りう] 02/04
└◇942:Re[6]:.bashrcの件で [test] 02/05
└◇944:Re[7]:.bashrcの件で [中島] 02/05
└◇947:Re[8]:.bashrcの件で [test] 02/06 <
cygwin起動時のHOME /home/testにより、スレッド一覧
起動後、pwdで確認すると確かに
/home/testになっていました。
そこで.bashrcを
cygwin環境の構築:環境設定ホームページにあるように
.bashrc自分用に変えて保存したのですが、
実行されません。
なぜでしょうか?
よろしくお願いします。
”10. 質問前に読んで欲しいFAQ”あるいはCygwin付属のFAQスレッド一覧
などを見てください。
> ”10. 質問前に読んで欲しいFAQ”あるいはCygwin付属のFAQスレッド一覧
> などを見てください。
もちろん読みました。
しかし、cygwin起動後.bashrcは実行されません。
Hello testが表示されないのと、aliasが未設定です。
よろしく、お願いします。
---.bashrcの内容---
echo Hello test
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
export SHELL=/bin/bash
export HOME=/home/test
export TMPDIR=/tmp
export TZ=JST-09
export MAKE_MODE=unix
PATH=/usr/local/sbin:/usr/sbin:/sbin:.:~/bin
PATH=/usr/local/bin:/usr/X11R6/bin:/usr/bin:/bin:$P
PAGER=less
JLESSCHARSET=japanese-sjis
export PATH PAGER JLESSCHARSET
PS1="$HOSTNAME:\w$ "
if [-n ${DISPLAY}]; then
export DISPLAY=localhost:0.0
fi
if [ !-n "${TERM}" ]; then
TERM=cygwin
fi
alias ls="ls -aF --color=auto"
alias la="ls -aF"
alias ll="ls -l"
どのようにbashを起動しているのかさえ書いていないのでスレッド一覧
何とも言えませんが、もし「Cygwin」アイコンからbashを
起動しているのであれば、
1. .bash_profile を作成
2. その中身として
#!/bin/bash
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
とする。
で対応出来るはずです。
# というより、bashのマニュアルは読んだのですか?
> # というより、bashのマニュアルは読んだのですか?スレッド一覧
確かに読んでませんでしたので、勉強しました。
.bashrcを3ファイルに分解し、今度は、~の下に用意しました。
(日付、時間省略、実行権は無くても良いのでしょうか?)
-rw-r--r-- 1 Administ なし .aliases
-rw-r--r-- 1 Administ なし .bas_profile
-rw-r--r-- 1 Administ なし .bash_history
-rw-r--r-- 1 Administ なし .bashrc
Windows 2000のアイコンからcygwinアイコンを実行しました。
やはり何も実行されていません。
後でshコマンドで実行してみると、
$ sh .bas_profile
$ sh .bashrc
Hello test
[: cygwin: unknown operand
$ sh .aliases
alias: not found
alias: not found
alias: not found
alias: not found
となります。
各ファイルの内容は、下記のとおりです。
何が悪いのか、さっぱり判りません。
よろしくお願いします。
$ cat .aliases
# define aliases
alias ls="ls --color=auto"
alias la="ls -aF"
alias ll="ls -alF"
alias h="history"
$ cat .bas_profile
LOGIN_SHELL=true
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
$ cat .bashrc
echo Hello test
export SHELL=/bin/bash
export HOME=/home/test
export TMPDIR=/tmp
export TZ=JST-09
export MAKE_MODE=unix
PATH=/usr/local/sbin:/usr/sbin:/sbin:.:~/bin
PATH=/usr/local/bin:/usr/X11R6/bin:/usr/bin:/bin:$PATH
PAGER=less
JLESSCHARSET=japanese-sjis
export PATH PAGER JLESSCHARSET
PS1="\! \H:\u> "
if [ -n ${DISPLAY} ]; then
export DISPLAY=localhost:0.0
fi
if [ !-n "${TERM}" ]; then
TERM=cygwin
fi
.bas_profile ではなくて「.bash_profile」です。スレッド一覧
あと、 Cygwin の sh は bash ではなくて ash という
別のシェルです。ash には alias という組み込みコマンドは
ありませんから、エラーになって当然です。
> .bas_profile ではなくて「.bash_profile」です。スレッド一覧
> あと、 Cygwin の sh は bash ではなくて ash という
> 別のシェルです。
ありがとうございました。
unix,cygwinには経験の浅いので、
そのような基本的なことさえ知りませんでした。
ところで、
Hello test
bash: [: !-n: unary operator expected
.bashrcは実行されるようになったのですが、
上のとおりまだエラーが表示されます。
何を言っているのか判りません。
よろしくお願いします。
> bash: [: !-n: unary operator expectedスレッド一覧
> .bashrcは実行されるようになったのですが、
> 上のとおりまだエラーが表示されます。
> 何を言っているのか判りません。
難しく考えずに、そのまま素直に理解しましょう。
[ というコマンドが、!-n というおかしな引数のせいで文句言っているだけです。
[ は、test コマンドの別名です。
man test
-n 〜の否定ならば、! と -n の間に空白が必要です。
> -n 〜の否定ならば、! と -n の間に空白が必要です。スレッド一覧
ありがとうございました。解決出来ました。
これで、問題点は全て解決できました。