Tag: bash

无法运行shell脚本

所以我有这个脚本: #!/bin/bash # Flips the screen (hopefully) syntax_error=0 orientation=0 current_orientation=”$(xrandr -q –verbose | grep ‘connected’ | egrep -o ‘\) (normal|left|inverted|right) \(‘ | egrep -o ‘(normal|left|inverted|right)’)” case $current_orientation in normal) current_orientation=0 ;; left) current_orientation=1 ;; inverted) current_orientation=2 ;; right) current_orientation=3 ;; esac if [ $current_orientation -eq 0 ]; then orientation=2 fi if [ $current_orientation -eq 2 […]

输出到/ dev / null在bash脚本中完成了什么?

我经常遇到在b语句中使用这种语法的小bash脚本: some command > /dev/null 2>&1 输出到/dev/null的目的是什么, 2>&1是什么意思? 它总是似乎工作,但我想知道它在做什么。

当Ctrl-C不会杀死正在运行的作业时该怎么办?

有时,进程会忽略Bash中Ctrl – C发送的SIGINT信号。 例如, man和vi 。 假设您不想谷歌或阅读有关如何退出正在运行的过程的手册,是否有任何键序列始终有效(不离开终端)?

方便地安排命令以便稍后运行?

从现在起8小时后,运行命令的简单方法是什么? 我可以这样思考: nohup bash -c “sleep 28800 ; ./mycommand.sh” & 有更“正确”的方式吗?

Shell变量不会随着管道读取组合而改变

考虑案例1: $ COUNT=0 ; while [ $COUNT -ne 3 ]; do echo $COUNT; COUNT=$(expr $COUNT + 1 );done 0 1 2 $ echo $COUNT 3 如预期的那样,在循环结束时COUNT变量为3 考虑案例2: $ COUNT=1; find . -print0 | while IFS= read -r -d ” FILE; do echo “$FILE”; expr $COUNT + 1; COUNT=$(expr $COUNT + 1 ) ;done . 2 […]

用于将所有文件从子文件夹移动到父文件夹的Shell脚本

我在文件夹A中有很多文件夹。 我想将文件从所有这些文件夹移动到A 要么 我想从子文件夹中剪切所有文件并将其粘贴到父文件夹中。 怎么做?

如何确定进程是否正在运行并使用它来创建条件shell脚本?

如何确定某个进程是否正在运行,然后让bash脚本根据该条件执行某些操作? 例如: 如果进程abc正在运行,请执行此操作 如果没有运行,那就去做吧。

我应该把我的bash脚本放在哪里

我有一些非常简单的bash脚本,我拼凑起来做我经常做的事情。 其中之一是运行duplicity来执行我的备份任务。 没有什么聪明只是一堆if .. then语句真的。 因为这需要以sudo的forms运行,所以最好将我的脚本放在/ usr / bin(或PATH中的其他位置),chown到root.root和chmod到700?

以root身份运行bash脚本时出错

我有一个简单的关机脚本,我想以root身份运行 shutdown -h +30; echo “succesfull”; 我已经按照这些答案1,2来使我的脚本成为根。 首先我运行此命令 sudo chown root.root $HOME/test/test.sh sudo chmod 4755 $HOME/test/test.sh 然后改变了sudoers sudo visudo 在此行%sudo ALL=(ALL:ALL) ALL之后添加此命令 eka ALL=(ALL) NOPASSWD: $HOME/test/test.sh 但是,当我执行我的脚本时,它显示此错误 shutdown: Need to be root succesfull

sed搜索并替换为包含斜杠的变量

我试图用变量替换文本文件中的字符串。 我正在使用此代码: sed -i “s/search text \/TAG\//replace text ${variable}/” ${textfile} 变量的内容是/newTAG/ 。 并且变量的内容是问题,更准确地说是/在开头和结尾。 当两个/都被删除所以内容只有newTAG一切正常。 我已经尝试了以下内容 sed -i “s/search text \/TAG\//replace text “${variable}”/” ${textfile} sed -i ‘s/search text \/TAG\//replace text “${variable}”/’ ${textfile} 有谁能够帮我? 谢谢