- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在 shell 脚本中使用 elif 命令时遇到问题,就像在 fortran 中一样。
我有 100 家公司的员工名单。我想屏蔽那些员工少于 500 人的公司。我的脚本是
rm -f category_1.txt category_2.txt
var=company
for j in 1..100
do n=$(wc -l < $var_$j.txt)
if [ n -ge 500 ]; then
echo $var_$j >> category_1.txt
elif #I know it will not work
echo $var_$j >> category_2.txt
có
xong
我知道,我应该写“elif [ n -lt 500 ]; then”。但我想清楚“elif”是否可以像fortran一样使用?对于 Fortran,我们只写
if (n .ge. 500) then
write (1, *) company(j)
khác
write (2,*) company(j)
endif
1 Câu trả lời
正确的 BASH 脚本应该是:
rm -f category_1.txt category_2.txt
var=company
for j in 1..100; do
n=$(wc -l < $var_$j.txt)
if [[ $n -ge 500 ]]; then
echo "${var}_${j}" >> category_1.txt
khác
echo "${var}_${j}" >> category_2.txt
có
xong
[ $n -ge 500 ]
不如使用更新的 [[ $n -ge 500 ]]
.nếu
,因为您只需要 khác
$i_$j
将无法正确解析,因为 _
也被视为变量名的一部分,您需要使用 ${i}_$(j }
关于linux - 如何在 shell 脚本中编写 elif 命令,如 elseif 或在 fortran 中的 else 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30425716/
Tôi tin rằng lệnh gọi thoát trong subshell sẽ khiến chương trình của tôi tiếp tục: #!/bin/bash grep str file | while read line do exit 0 done
Tôi tin rằng lệnh gọi thoát trong subshell sẽ khiến chương trình của tôi tiếp tục: #!/bin/bash grep str file | while read line do exit 0 done
Tôi có một số tập lệnh và phần đầu của chúng trông giống nhau. Chức năng của phần này là xác định máy nào đang chạy tập lệnh và thiết lập một số biến cho phù hợp. Nó sẽ trông như thế này: ENV=`echo $LOGNAME | cut -c1-8` nếu
Đây là những gì tôi đang cố gắng thực hiện. Tôi có 4 tập lệnh shell. Kịch bản 1 cần phải chạy trước, sau đó là 2, 3, 4 và chúng phải chạy theo thứ tự đó. Tập lệnh 1 cần phải chạy (và chờ ở chế độ nền) Tập lệnh 2 phải chạy đúng cách, nhưng tập lệnh
Tôi có một tập lệnh có tên là a.sh, nội dung của nó là: //a.sh: #!/bin/bash temp=0 while [ "$temp" -ne 500 ] do echo `date`
Trong snakemake, cách được khuyến nghị để thực thi nhiều lệnh bằng hàm shell() là gì? Câu trả lời hay nhất Bạn có thể gọi shell() nhiều lần trong một khối quy tắc chạy (quy tắc có thể chỉ định run: thay vì shell:): rule pro
Tôi có một tập lệnh shell mà tôi truyền một số đối số vào. Test1.sh -a 1 -b 2 -c "một hai ba" Trong Test1.sh, tôi gọi một tập lệnh shell khác như sau. Test2.sh $* Tôi
Tôi có 2 tập lệnh shell. Tập lệnh shell thứ hai chứa các hàm sau second.sh func1 func2 first.sh sẽ gọi tập lệnh shell thứ hai với một số đối số và một số đối số khác dành riêng cho hàm đó sẽ được sử dụng
Tôi có một tập lệnh shell Unix là test.sh. Trong tập lệnh, tôi muốn gọi một shell khác, sau đó thực thi phần còn lại của các lệnh trong tập lệnh shell từ subshell và thoát Để rõ ràng: test.sh #!/bin/b
Tôi muốn thay đổi biến môi trường đường dẫn trong một tập lệnh shell. Biến đường dẫn cần được sửa đổi sau khi tập lệnh shell được thực thi. Câu trả lời hay nhất Tôi biết có hai cách để thực hiện việc này. Đầu tiên là chạy tập lệnh trong ngữ cảnh của shell hiện tại: . myscript.
Tập lệnh shell này hoạt động đúng như mong đợi. bẫy 'echo exit' EXIT foo() { exit } echo begin foo echo end Đây là đầu ra. $ sh foo.sh
Tôi đang sử dụng vimshell để thực thi các lệnh trong vim nnoremap so với :VimShellPop Với ánh xạ phím này, tôi có thể mở vim shell và thực thi các lệnh như 'bundle install' rồi nhập exi
Tôi muốn kết nối với các shell khác nhau (csh, ksh, v.v.) và thực thi lệnh trong mỗi shell được chuyển đổi. Đây là một chương trình mẫu phản ánh ý định của tôi: #!/bin/bash echo $SHELL csh e
Hiện tại tôi đang cố gắng viết lại shell bằng C sử dụng trình phân tích cú pháp BNF và LL. Nếu không, tôi cần biết thứ tự ưu tiên của các toán tử shell | , > , > , & , ; là gì? Có ai có thể cung cấp cho tôi không? Cảm ơn bạn nhiều nhất
Thật không may, tôi không có lệnh tạm dừng (busybox/ash). Nhưng tôi có thể sử dụng kill -STOP $$ để quay lại shell cha từ shell nền (sh &) (và fg sau đó). Nhưng tôi không muốn vào
Tôi cần biết khi nào người dùng chuyển sang shell khác bằng cách nhấp vào shell đó. Tôi đã thử shellListener.shellDeactivated() nhưng sự kiện này được kích hoạt khi shell mất tiêu điểm vào các điều khiển của chính nó, điều đó có nghĩa là
file1.txt aaaa bbbb cccc dddd eeee file2.txt DDDD cccc aaaa result bbbb eeee Tốt hơn là không phân biệt chữ hoa chữ thường! Cảm ơn bạn! Câu trả lời hay nhất gre
Tôi đã thấy các vòng lặp giải nén tất cả các tệp zip trong một thư mục. Tuy nhiên, trước khi chạy lệnh này, tôi muốn chắc chắn rằng những gì tôi sắp chạy hoạt động chính xác: for i in dir; do cd $i; unzip '*.zip'; rm -rf *.z
Tôi khá mới với lập trình nhưng tôi tự hỏi làm thế nào các trình soạn thảo văn bản shell như vim, emacs, nano, v.v. có thể điều khiển cửa sổ dòng lệnh. Tôi chủ yếu là một lập trình viên Windows nên mọi thứ có thể sẽ khác trên *nix. Theo như tôi biết, chỉ có văn bản
Tôi có một tệp chứa ngày ở cột thứ 7, yêu cầu của tôi là so sánh nó với ngày hôm nay và nếu nhỏ hơn thì xóa toàn bộ hàng đó. Ngoài ra, nếu bất kỳ ngày nào được đề cập trong cột 7 dài hơn 15 ngày, thì hãy sửa đổi nó thành tối đa là 15 ngày. Ví dụ bên dưới - bây giờ
Tôi là một lập trình viên xuất sắc, rất giỏi!