Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
305 views
in Technique[技术] by (71.8m points)

linux - Why does bash go into an infinite loop?

I was trying out different ways of emulating a boolean variable in bash. One method is:

readonly T=1
readonly F=0
((T)) && echo "true" || echo "false"
((F)) && echo "true" || echo "false"

which prints true and false respectively. Then I had a brain cramp and typed:

! ((F)) && "yes"

expecting to see yes in the terminal. However, without the echo command, it went into an infinite loop printing y. Can someone explain what bash is doing here?

question from:https://stackoverflow.com/questions/65944918/why-does-bash-go-into-an-infinite-loop

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

bash didn't go into an infinite loop. You're running the yes program, whose description is:

yes - output a string repeatedly until killed

y is the default string that it prints. The purpose is to pipe it to a command that's going to ask lots of confirmation questions, so you can give the same answer to all of them. E.g.

yes | ./configure

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...