- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 shell 脚本 cron,它从同一目录调用 python 脚本,但是当这个 cron 执行时,我没有从我的 python 脚本中获得预期的输出,当我手动执行它时,我的 python 脚本的输出符合预期。
我提供了 python 脚本路径,例如/usr/bin/python room_wise.py
并在 shell 脚本中给出了所有 shell 参数,但仍然没有使用 shell 脚本 cron 调用我的 python 脚本。
有人可以帮我吗?
1 Câu trả lời
cron 作业中的大问题是绝对目录位置和相对目录位置。如图所示,您需要先将相对路径拆分出来。
#!/usr/bin/env bash
dirName=`dirname $0`
baseName=`basename $0`
arg1=$1
arg2=$2
cd ${dirName} && python ./room_wise.py arg1 arg2
然后使用 crontab -e 将项目添加到您的用户 cron 作业并添加以下内容:
PATH=/usr/bin:/bin:/sbin
30 00 * * * /my/directory/containing/room_wise_py.sh arg1 arg2 > /my/directory/containing/output.log 2>&1
您可以看到我已经添加了 PATH,因为这有时可能是某些操作系统发行版的问题。此外,该脚本与 bash 脚本存在于同一目录中,或者如果您修改 bash 脚本以将 dirname 包含为 $1,则可以将目录位置作为参数传递。
您还可以看到我已将所有输出定向到一个日志文件。这是一个非常好的主意,因为如果出现问题,有时很难调试过程。
关于python - 从 shell 脚本 cron 调用 python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46728815/
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!