Questions tagged «bash»

Bash(Bourne-Again SHell)是默认情况下在Ubuntu命令行界面中使用的shell。

3
当另一个用户更改目录时如何运行脚本?
我知道已经对与此类似的话题进行了一些讨论。但是,这基本上是我要做的。 我有一个名为watch的监视目录watched,无论何时将文件添加到该目录,我都想触发一个名为的脚本syncbh.sh,该脚本将从该目录中取出文件并将其上传到远程服务器。 需要注意的是,文件是watched由一个用户(user2)在目录中创建的,而脚本是由另一个用户(user1)执行的。 我曾尝试使用incron来完成此操作,但是仍然遇到一个主要问题,因为尽管可以由具有root特权的user1手动执行脚本,但是incron守护程序实际上从未真正由其他user2的文件创建事件自动触发。 我曾考虑过使用inoticoming是否会是更好的选择,但目前尚不清楚它的语法如何工作。如果有更好的方法来完成此操作,或者如果我最终无法使用该命令语法,则要求该命令语法监视/home/user1/watched目录并执行脚本(/usr/local/bin/syncbh.sh如果在该目录中创建/修改了文件)? 任何帮助将非常感激。


3
为终端预先定义颜色?
我试图记住如何在.bashrc文件中预定义颜色,以便${RED}例如在执行时可以调用它们。 我不记得这样做是否正确,但如果我记得的话,就是这样。 NC="\033[0;0;0m" # no color or formatting RED="\033[1;49;91m" # color red BLU="\033[1;49;94m" # color blue GRN="\033[1;49;32m" # color green 我还记得,另一个正在使用,function因此可以随时随地使用。我确实有一个文件向我展示了如何执行此操作,但是我丢失了该文件,该文件显示了如何执行此操作,我不记得它如何进行。




2
卷曲.gz文件并将其通过管道进行解压缩
我正在尝试从给定的URL 下载一些.gz文件(不包括.tar.gz那些文件),并将其解压缩以覆盖现有文件(如果有)。 对于每个单独的下载,我尝试了以下操作: curl -O $URL | gunzip -f 然而,这并没有工作,因为它与失败:gzip: stdin: unexpected end of file。我在bash shell脚本中运行了一系列此命令。 如果我将命令扩展到两个明确的步骤,即首先下载文件,然后解压缩.gz文件,则它可以工作。 为什么管道版本不起作用?
13 bash  scripts  curl  pipe  gzip 

7
如何在bash中将参数设为可选?
在下面带有9个参数的函数中: SUM() { echo "The sum is $(($1+$2+$3+$4+$5+$6+$7+$8+$9))" } 我想使next(3..9)的第二个参数成为可选参数。 当我使用2个参数调用函数时,出现错误: SUM 3 8 bash: 3+8+++++++: syntax error: operand expected (error token is "+") 注意BOLD:第一个参数和第二个参数是强制参数,对于函数不是可选的。我只希望下一个的第二个参数是可选的,并且当我调用小于2个args的函数时,该函数必须不返回任何结果。
13 bash  functions 

4
通过在bash中连接字符串来构建命令
我有一个bash脚本,可以在一次执行之前根据一些参数在字符串中构建命令行。应该将连接到命令字符串的部分用管道分开,以利于通过每个组件的“数据流”。 一个非常简化的示例: #!/bin/bash part1=gzip -c part2=some_other_command cmd="cat infile" if [ ! "$part1" = "" ] then cmd+=" | $part1" fi if [ ! "$part2" = "" ] then cmd+=" | $part2" fi cmd+="> outfile" #show command. It looks ok echo $cmd #run the command. fails with pipes $cmd 由于某些原因,管道似乎无法正常工作。当我运行此脚本时,我得到的错误消息通常与命令的第一部分(在第一个管道之前)有关。 所以我的问题是,是否可以通过这种方式构建命令,什么是最好的方式?
13 bash  pipe 

6
与printf命令混淆?
我必须在一个打印命令中打印以下三行,而不使用echo命令。所以我选择了printf命令,这是三行: Different characters can be represented and supported in the print command, for example: x-y, X+Y, –, +, <, >, %, $, #, &. 到目前为止,我所做的是: printf " Different characters can be represented and supported in the print command, for example: x-y, X+Y, –, +, <, >, %, $, #, &. …

3
比较Bash中的两个字符串
我想制作一个脚本,该脚本rmdir使用read设置变量的密码确认后删除目录。 到目前为止,我有这个: #!/bin/bash -x echo "Password:" read -t 30 S1 S2='55555' if [ $S1=$S2 ]; then rmdir /home/william/test else echo "fail" sleep 10 fi 因此,我必须-x尝试对其进行调试,但是每次脚本无法回显(如果我输入错误的密码)或它不会删除所需的目录时,都将对其进行调试。 如果有人拥有我可以使用的可修改脚本,或者您可以指出当前脚本存在的问题,那将是很好的选择。
13 bash  scripts  password 


2
等待dd命令完全写入磁盘
我正在使用dd命令从iso文件创建可启动的USB: sudo dd if=~/Desktop/ubuntu.iso of=/dev/sdx bs=1M 按回车后,它会立即退出并给我: 915+0 records in 915+0 records out 959447040 bytes (959 MB) copied, 0.539375 s, 1.8 GB/s 就像在后台运行一样,因为我可以看到闪存驱动器正在工作。最终它将停止复制,并且我可以成功删除驱动器,但问题是为什么dd命令不等待复制完成。为什么它在后台运行。我该如何等待?


3
Bash PS1自定义提示中的长行重叠
我已经配置了一个花哨的两行PS1bash提示符,其中包含服务器名称,时间,用户名和其他有用的变量。 PS1="\n\[\033[1;34m\]\342\226\210\342\226\210 \u @ $SERVER_NAME""$BBlue"" \w""$Color_Off \n\[\033[0;36m\]\342\226\210\342\226\210 \d \t $ \[\033[0;39m\]" 完整的Github源码在这里。 问题在于,长行经常缠绕在自己周围,这意味着新行与前一行重叠。 问题是不一致的:有些行正确包装,有些行没有正确包装。 任何想法如何解决这个问题?
13 bash  prompt  ps1 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.