Questions tagged «bash»

与其他Bourne / POSIX shell相对,GNU的Bourne Again SHell特有的问题。对于一般关于Unix shell的问题,请改用/ shell标记。

1
查找并rsync?
我希望能够搜索超过14天和超过10k的文件,而不是将那些找到的文件rsync到目的地。 有没有办法组合这两个命令? find ./ -mtime +14 -size +10k rsync --remove-sent-files -avz /src /dest
24 bash  shell  find  pipe  rsync 

4
找不到realpath命令
我有debian挤amd64。我当前的shell是bash。如果我在终端中写了以下内容,则可以使用: $ uname -a Linux core 2.6.32-5-amd64 #1 SMP Fri May 10 08:43:19 UTC 2013 x86_64 GNU/Linux $ echo $SHELL /bin/bash $ echo $(realpath test.sh) /home/ffortier/test.sh 我的test.sh文件看起来像这样: #!/bin/bash echo $(realpath "$1") 如果我尝试执行以下操作,则会出现错误 $ ./test.sh test.sh ./test.sh: line 2: realpath: command not found 如何在bash文件中使用realpath命令? 附加信息 $ type -a realpath realpath is …
24 linux  bash  debian 

3
随机运行命令
我想运行这两个命令之一C1,并C2在随机的。如何在命令行(bash)上执行此操作?如果单线可行,将不胜感激。
24 bash  random 

3
在bash shell脚本中,编写对字符串值进行迭代的for循环
在bash中,我知道可以编写一个for循环,其中一些循环控制变量i在指定的整数上进行迭代。例如,我可以编写一个bash shell脚本来打印1到10之间的整数: #!/bin/bash for i in {1..10} do echo $i done 如果我提供字符串列表,是否可以替代地循环访问一个字符串的循环控制变量?例如,假设我有一个fname代表文件名的字符串。我想为每个文件名调用一组命令。例如,我可能想fname使用如下命令打印内容: #!/bin/bash for fname in {"a.txt", "b.txt", "c.txt"} do echo $fname done 换句话说,在第一次迭代中,fname应具有值fname="a.txt",而在第二次迭代中,fname应具有值fname="b.txt",依此类推。不幸的是,上述语法似乎不太正确。我想获得输出: a.txt b.txt c.txt 但是当我尝试上面的代码时,我得到以下输出: {a.txt, b.txt, c.txt} 您能否帮助我确定正确的语法,以便可以迭代地更改变量的值/内容fname?感谢您的时间。
24 bash  shell-script  for 

3
在Bash中调用subshel​​l的规则?
我似乎误解了Bash创建子shell的规则。我认为括号总会创建一个子外壳,该子外壳将作为其自身的进程运行。 但是,事实并非如此。在代码片段A(如下)中,第二条sleep命令未在单独的外壳程序中运行(由pstree另一个终端确定)。但是,在代码片段B中,第二个sleep命令确实在单独的外壳中运行。这些代码段之间的唯一区别是第二个代码段在括号内有两个命令。 有人可以解释一下创建子外壳的规则吗? 代码片段A: sleep 5 ( sleep 5 ) 代码片段B: sleep 5 ( x=1 sleep 5 )

16
bash的“书签”
浏览多层嵌套目录通常很麻烦。在Firefox上,这很容易,因为它们具有书签。因此,我想对文件添加书签的方法是键入: $ go --add classes "repo/www/public/util/classes" 然后,要转到该目录,请输入: $ go classes 以前,我使用符号链接来实现类似的目的,但是我不想弄乱自己的主目录。还有许多其他功能可能被证明是有用的。例如,我希望能够开始键入go cl,然后点击制表符以自动完成。有时我签出了一个存储库的多个副本,因此该程序允许我创建多个上下文并相对于上下文基础目录设置书签会很有用。 因此,在我开始拼凑自己的一组脚本之前,已经有这样的东西吗?
24 bash  shell 

4
在zsh和bash之间共享别名和PATH设置
我通常使用的外壳是zsh。我有一些别名,可以在ls和程序中启用颜色grep。我还设置了自定义路径,以便可以在非标准位置(例如在中~/bin/)执行程序。 我不会将root的shell更改为zsh,但是我想共享这些设置,以便root也可以拥有它。我发现这zsh不是采购/etc/profile。我可以在中获取它/etc/zsh/zprofile,但我想使用其他更“适当”的方式。
24 shell  bash  zsh  path  alias 


2
为什么远程Bash源.bash_profile而不是.bashrc
Bash手册说: Bash尝试确定它何时在其标准输入连接到网络连接的情况下运行,就像由远程Shell守护程序(通常为rshd或安全Shell守护程序sshd)执行时一样。如果Bash确定它是以这种方式运行的,则它从〜/ .bashrc读取并执行命令(如果该文件存在并且可读)。 该Bash来源~/.bashrc: ssh user@host : 但是这个Bash来源~/.bash_profile: ssh user@host 根据规范,这两个命令没有区别。在两种情况下,stdin是否都未连接到网络连接?
24 bash  ssh 

3
多个逻辑运算符(((A || B)&& C),以及“意外令牌附近的语法错误”
我正在使用Bash 3,并且正在尝试形成条件。在C / C ++,它的死简单((A || B) && C)。在Bash中,事实并非如此(我认为Git作者必须先编写此代码,然后再进行其他工作)。 这是行不通的。注意,这<0 or 1>不是字符串文字。表示0或1(通常来自grep -i)。 A=<0 or 1> B=<0 or 1> C=<0 or 1> if [ [ "$A" -eq "0" ] || [ "$B" -ne "0" ] ] && [ "$C" -eqe "0" ]; then ... fi 结果是: line 322: syntax error …

6
如何在外壳中向.bash_profile / .profile / bashrc添加功能?
我有一个将纪元时间转换为日期的函数。这是定义 date1(){ date -d @$1 } 我希望能够写: $ date1 xxxyyy 其中xxxyyy是我传递给函数的参数,因此我可以获得相应的日期。我明白我必须将它添加在任.bash_profile,.profile或.bashrc然后它来源: $ source file 但是,我不确定要放入哪个文件。目前,我在中.profile。但是要运行它,我必须source .profile每次都做。 理想情况下,当计算机像环境变量一样启动时,它应该使它可用。
24 bash  shell  function  profile 

3
如何在目录上递归设置权限(启用ACL)?
例如,我想授予同事对某些目录的写权限。假设其中的子目录具有访问权限775,文件664和目录775中还有一些可执行文件。 现在,我想添加写权限。使用chmod,我可以尝试类似 chmod o+w -R mydir/ 但这不是很酷,因为我不想使该目录在世界范围内可写-我只想将访问权限授予某些用户,所以我想使用ACL。但是,有一种简单的方法来设置这些权限吗?如我所见,我需要分别处理至少三种情况(目录,文件,可执行文件): find -type d -exec setfacl -m u:colleague:rwx {} \; find -type f -executable -exec setfacl -m u:colleague:rwx {} \; find -type f \! -executable -exec setfacl -m u:colleague:rw {} \; 对于这样一个简单的任务,似乎有很多代码行。有没有更好的办法?
24 linux  bash  permissions  acl 


8
是否可以检查在哪里定义了别名?
别名,例如ll用alias命令定义的。 我可以用类似type ll打印的内容检查命令 ll is aliased to `ls -l --color=auto' 或command -v ll哪些印刷品 alias ll='ls -l --color=auto' 或者alias ll也可以打印 alias ll='ls -l --color=auto' 但我似乎无法找到那里的别名定义,即一个文件,如.bashrc在运行中的shell,或者手动。在这一点上,我不确定这是否可能。 我是否应该简单浏览所有加载的文件bash并检查每个文件?
24 bash  terminal  bashrc 


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.