Câu hỏi được gắn thẻ «shell-script»

Các câu hỏi về tập lệnh shell, tập tin thực thi được giải thích bởi trình bao (bash, zsh, v.v.).



5
Thay thế các biến môi trường trong một tập tin bằng các giá trị thực tế của chúng?
Có cách nào dễ dàng để thay thế / đánh giá các biến môi trường trong một tệp không? Giống như giả sử tôi có một tệp config.xmlchứa: <property> <name>instanceId</name> <value>$INSTANCE_ID</value> </property> <property> <name>rootPath</name> <value>/services/$SERVICE_NAME</value> </property> ... Vv Tôi muốn thay thế $INSTANCE_IDtrong tệp bằng giá trị của INSTANCE_IDbiến môi …


3
Kiểm tra nếu một chuỗi chứa một chuỗi con
Tôi có mã file="JetConst_reco_allconst_4j2t.png" if [[ $file == *_gen_* ]]; then echo "True" else echo "False" fi Tôi kiểm tra nếu filecó chứa "gen". Đầu ra là "Sai". Tốt đẹp! Vấn đề là khi tôi thay thế "gen" bằng một biến testseq: file="JetConst_reco_allconst_4j2t.png" testseq="gen" if [[ $file == *_$testseq_* ]]; …






2
Tại sao lại sử dụng && 75 lần nhanh hơn so với nếu fi fi và cách làm cho mã rõ ràng hơn
Tôi có mã làm việc sau đây: largest_prime=1 for number_under_test in {1..100} do is_prime=true factors='' for ((divider = 2; divider < number_under_test-1; divider++)); do remainder=$(($number_under_test % $divider)) [ $remainder == 0 ] && [ is_prime ] && is_prime=false && factors+=$divider' ' done [ $is_prime == true ] && echo "${number_under_test} …


2
Không có nghĩa là $ $ {- # * i}!
Trong /etc/profiletôi thấy điều này: for i in /etc/profile.d/*.sh ; do if [ -r "$i" ]; then if [ "${-#*i}" != "$-" ]; then . "$i" else . "$i" >/dev/null 2>&1 fi fi done Có ${-#*i}nghĩa là gì Tôi không thể tìm thấy một định nghĩa về việc mở rộng …



Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.