[過去ログ] シェルスクリプト総合 その31 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
956(1): デフォルトの名無しさん [sage] 2019/10/24(木) 17:48:17.61 ID:mthfJT/n(1/3) AAS
>>953953(1): デフォルトの名無しさん [sage] 2019/10/22(火) 21:23:51.15 ID:CciDAIxr(1) AAS
>>952
面白いけど、サブシェルの中で変えられないから
alias FLAG=true
(
alias FLAG=false
if FLAG; then
echo true
fi
)
出力
true
知らんかった。恥ずかしいw
957(1): デフォルトの名無しさん [sage] 2019/10/24(木) 17:49:17.77 ID:mthfJT/n(2/3) AAS
>>954954(2): デフォルトの名無しさん [sage] 2019/10/23(水) 10:43:57.77 ID:oiOUCahJ(1) AAS
TRUE=$([ 0 = 0 ];echo $?)
FALSE=$([ ! $TRUE ];echo $?)
FLAG=$TRUE or $FALSE
それってTRUE=0とするのと何が違うの?
960: デフォルトの名無しさん [sage] 2019/10/24(木) 22:00:36.73 ID:mthfJT/n(3/3) AAS
>>958958(1): デフォルトの名無しさん [sage] 2019/10/24(木) 18:07:25.18 ID:lp1ZwQII(1) AAS
>>956
サブシェルは関係ない。俺もちゃんと仕様読んだわけじゃないけど、
aliasは実行時じゃなくて、1単位ごとに → パース → 実行 の
パース時に変換してる感じ
そして1単位というのは、
alias FLAG=true
alias FLAG=false; FLAG && echo true
↑これは一行で一単位、だからtrueと表示されてしまうし
関数とか、プロンプトから、func() { 改行 とかやると
} 改行 するまで、ずっと行頭に > って表示されるだろ?
あれが1単位。だから↓みたいなものもtrueって表示されてしまうんだよ
alias FLAG=true
func() {
alias FLAG=false
if FLAG; then
echo true
fi
}
func
あー。
aliasってたしか一つの構文解析のかなり初期段階で展開される筈だから,
その一つの解析対象の内部で定義されているaliasは(当然)それ自身の解析結果には反映されんな。
このへんだろうか??
外部リンク[html]:pubs.opengroup.org
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.039s