首題の件、ご教示いただきたく投稿します。
以下は、環境変数 PATH を構成する各ディレクトリを一行ずつ表示させるシェルスクリプト、
print_path_dirs.sh
を作成して、実行したところです。
[ykt68@MacBook mywork]$ echo $PATH
/Users/ykt68/.rbenv/shims:/Users/ykt68/.pyenv/shims:/Users/ykt68/.pyenv/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:.
[ykt68@MacBook mywork]$ cat print_path_dirs.sh
#!/bin/bash OLD_IFS=${IFS} IFS=: for e in $PATH do echo $e done IFS=${OLD_IFS}
[ykt68@MacBook mywork]$ bash print_path_dirs.sh
/Users/ykt68/.rbenv/shims
/Users/ykt68/.pyenv/shims
/Users/ykt68/.pyenv/bin
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
/Library/TeX/texbin
.
[ykt68@MacBook mywork]$
上記は正しく実行できています。
次に、このスクリプトと同じことを、シェルプロンプトへのワンライナーでやろうとしました。
まず、以下のコマンドラインではダメでした。
[ykt68@MacBook mywork]$ (IFS=':' for e in $PATH; do echo $e; done)
上記だと
-bash: syntax error near unexpected token `do'
とシンタクスエラーになってしまいます。そこで調べまして、$PATHをいったん配列変数に入れて
[ykt68@MacBook mywork]$ (IFS=':' ARRAY=($PATH); for e in ${ARRAY[@]}; do echo $e; done)
とするとこれはうまくいき、PATHの各要素が表示されました。
そこで質問なのですが、
[ykt68@MacBook mywork]$ (IFS=':' for e in $PATH; do echo $e; done)
だとシンタクスエラーになる理由が分かりません。
これだと、なぜ
-bash: syntax error near unexpected token `do'
になってしまうのかご教示いただけますと幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/08/19 07:40