日頃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ランキング
-
ubuntu(linux)のシャットダウン...
-
ubuntuのシャットダウンが進ま...
-
bashでシングルクォート内の変...
-
Ubuntuで数字だけのユーザーア...
-
AWSでSSH接続をしたいのですが...
-
Linux Mint 日本語入力できなく...
-
ubuntuで デイスク/deb/loopと...
-
2TBのUSBメモリを2000円ほどで...
-
プログラミングPC、LinuxのOSパ...
-
Linuxのパーティション番号の変...
-
windows10を使っています。 wsl...
-
負荷号命題で A and bが成り立...
-
lubuntuのインストールが終わり...
-
Linux Mint でも使えないですよ...
-
Windowsのローカルディレクトリ...
-
Ubuntu on Xorgのログインについて
-
VertualBox でのLinux Mint の...
-
raspberrypi に bluealsaを入れ...
-
[Linux初心者]Ubuntu22.04.3LTS...
-
LinuxのノートパソコンでDVDコ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
bashでシングルクォート内の変...
-
ubuntu(linux)のシャットダウン...
-
AWSでSSH接続をしたいのですが...
-
Linuxのパーティション番号の変...
-
ubuntuで デイスク/deb/loopと...
-
自作のウェブサイトを友人に見...
-
ubuntuのシャットダウンが進ま...
-
[Linux初心者]Ubuntu22.04.3LTS...
-
Ubuntu系とCentOS系の違いはな...
-
Ubuntu on Xorgのログインについて
-
Windowsのローカルディレクトリ...
-
tarで纏める際に、複数場外した...
-
Linux のシェルスクリプトの強...
-
Ubuntuで数字だけのユーザーア...
-
linuxサーバーのキャッシュをク...
-
shellscript内のコマンドを、su...
-
ssl_request_logの必要性について
-
ubuntuのサーバー(virtual box)...
-
Kali Linuxで起動できない - Mi...
-
ホストオンリーアダプタで接続...
おすすめ情報