
日頃Linuxを使用している者です。手元にSolaris環境がなく検証できないためSolaris使いの方にお伺いさせてください。
お聞かせいただきたいことは次の一点です。
Q. Solaris8,9,10 のBourneShellは従来どおり、while文でリダイレクトを使ったときは、サブシェルでまわりますか?
上記質問に至った簡単な経緯を申し上げます。
実は、Linuxの/bin/ash(BourneShell相当)スクリプトで while文でリダイレクトしたところ、ループ内の変数がwhileの外でも参照できました。本来BourneShellの場合、当ケースでのループはサブシェルで回るはずですよね。
最近のGNU BASHを始め、ASHもfor,whileのりダイレクトを使ったループもカレントシェルで動作するということでしょうか? そこで、SolarisのSHはどうなのかと思った次第です。以上宜しくお願いします。
p.s.
HP-UX, AIXのSHについても情報があればありがたいです。
参考までに、Linux上の実例を記します。
■test.ash
#!/bin/ash
n=0
while read line
do
i=`expr $i + 1`
echo "$i: $line"
done < $0
echo "total line= $i"
■実験してみる
> ./test.ash
1: #!/bin/ash
2:
3: i=0
4: while read line
5: do
6: i=`expr $i + 1`
7: echo "$i: $line"
8: done < $0
9: echo "total line= $i"
total line= 9 ← しっかりインクリメントされた変数見れてるし。最近の仕様?
No.1ベストアンサー
- 回答日時:
Solarisの環境は無いのでわかりませんが、
http://www.nurs.or.jp/~asada/FAQ/UNIX/section3.8 …
Posix準拠のshだとカレントシェルでの実行のようです。
notnotさん
ご回答ありがとうございます。上記 URL 参考になりました。
また、御礼が遅れて申し訳ありませんでした(ここ最近は Solaris10 に触れる機会があり、暫く Solaris にどっぷりつかっており当ページにアクセスしておりませんでした)。
因みに、Solaris の sh は純粋に BourneShell でした。当質問のケースでは、サブシェルで回っているようです。
Linux-Solaris 間で sh による汎用性のあるコードを書く場合、このような細かい部分に注意する必要がありそうですね。
まずは、ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux 次の要件を満たすにはどのように修正したらよろしいでしょうか 1 2022/11/24 20:57
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- その他(プログラミング・Web制作) ログインシェル時のSHELL環境変数 1 2022/06/08 19:21
- UNIX・Linux Linuxのシェル関数を作成して要件を満たす方法 1 2022/11/19 20:33
- その他(プログラミング・Web制作) python質問 1 2023/08/14 11:54
- UNIX・Linux Linuxのbash環境下です。 1 2022/11/27 12:31
- その他(プログラミング・Web制作) zshの例外処理 1 2022/06/02 16:36
- PHP PHP一覧表示した項目にリンクをはりたい 1 2023/07/12 17:08
- UNIX・Linux デフォルト値のパラメータ展開 1 2022/08/12 17:34
- その他(プログラミング・Web制作) uwscとWinShotを使いスクリーンショットを撮る 1 2022/06/30 21:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
LinuxでWine使うとどのくらいWi...
-
Core 2 Duo の古いパソコンに最...
-
bashでシングルクォート内の変...
-
Linux のシェルスクリプトの強...
-
ログにserver reached MaxReque...
-
ubuntu(linux)のシャットダウン...
-
ssl_error_logのエラー内容(AH...
-
ubuntuのシャットダウンが進ま...
-
AWSでSSH接続をしたいのですが...
-
Windowsのローカルディレクトリ...
-
Ubuntu on Xorgのログインについて
-
Linuxでブートディスクの交換後...
-
CentOSが起動時にフリーズ
-
ubuntu が起動しない。
-
ViエディタとVimエディタの違い...
-
ubuntuで デイスク/deb/loopと...
-
インストールできないですどう...
-
LinuxのノートパソコンでDVDコ...
-
OpenSSHのサーバー設定ファイル...
-
zorin OS
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
LinuxでWine使うとどのくらいWi...
-
Core 2 Duo の古いパソコンに最...
-
Linux のシェルスクリプトの強...
-
ubuntu(linux)のシャットダウン...
-
bashでシングルクォート内の変...
-
ubuntuで デイスク/deb/loopと...
-
apacheでリバースプロキシを設...
-
CentOSが起動時にフリーズ
-
ubuntuのシャットダウンが進ま...
-
ubuntu が起動しない。
-
Windowsのローカルディレクトリ...
-
Ububtuでファイル共有できない...
-
Ubuntu on Xorgのログインについて
-
ログにserver reached MaxReque...
-
「/var/log」内のログの削除の...
-
ubuntu 24 へのCanon 複合機ス...
-
ssl_request_logの必要性について
-
私のパソコンでVirtualBoxは使...
-
WineのRufusでデバイスを検知す...
-
LinuxのノートパソコンでDVDコ...
おすすめ情報