Questions tagged «bash»

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


2
将命令行参数传递给Shell脚本中的程序
至于./script.sh arg1 [arg2 arg3 ...],命令行参数arg1,arg2......可以得到通过$1,$2...,但是参数的数目是不固定的。 在shell脚本中,我想将参数从arg2传递给程序, #/bin/bash ... /path/to/a/program [I want to pass arg2 arg3 ... to the program] ... 由于可能存在一个或多个参数,我该怎么办?

5
用bash索引字符串
如何在sh / bash中按索引引用字符串?也就是说,基本上将其拆分。 我正在尝试删除文件名的5个字符。所有名称都具有以下结构:name_nr_code。我正在尝试删除5个字母数字代码位。name_nr_始终为10个字符。 有没有类似的事情? for i in * ; do mv "$i" "$i"[:10] ; done
15 bash  shell  string 


3
用`ls`和正则表达式列出
如何列出文件名以最后一个字符和.txt扩展名结尾的文件? 我已经尝试过了,ls *+([[:digit:]]).txt但这对于abc12.txt和是正确的abc2.txt。 但是我只需要得到abc2.txt。我怎样才能做到这一点? 有没有某种形式的:digit:可以做到这一点?
15 bash  wildcards 

2
ulimit PICKLE:“不允许操作”和“找不到命令”
我正在尝试增加当前用户的最大打开文件数 > ulimit -n 1024 我尝试增加并失败如下 > ulimit -n 4096 bash: ulimit: open files: cannot modify limit: Operation not permitted 所以我自然而然地尝试在临时权限下运行,但是失败了 > sudo ulimit -n 4096 sudo: ulimit: command not found 问题 如何增加ulimit? 为什么会这样呢? 使用Fedora 14
15 bash  fedora  sudo  limit 

1
找出启动时bash正在运行哪些脚本
启动bash终端后,我注意到PATH变量包含重复项。我的终端启动了一个登录shell,因此~/.bash_profile是Source,然后是~/.profile和~/.bashrc。仅在~/.profile其中创建重复的路径条目。 要学究一点,这是应该来源的文件的来源顺序: Sourced /etc/profile Sourced /etc/bash.bashrc Sourced .bash_profile Sourced .profile Sourced .bashrc 在任何人将其标记为“ PATH变量包含重复项”的重复项之前,请继续阅读。 最初,我认为这与~/.profile源两次有关,因此无论何时将文件写入日志文件,都令人惊讶,它仅记录了一个条目,这告诉我它仅源一次。更令人惊讶的是,当我注释掉其中的条目时~/.profile,这些条目仍然出现在PATH变量中。这导致我得出三个结论,其中一个很快就被排除在外: Bash会忽略有效的bash注释,但仍会执行注释的代码 有一个脚本可以读取~/.profile和忽略任何打印输出的代码(例如,日志文件) 我的另一本~/.profile正在其他地方采购 第一个,我很快得出结论,由于进行了一些快速测试,情况并非如此。第二和第三个选项是我需要帮助的地方。 如何在终端启动时收集执行脚本的日志?我echo在检查过的文件中使用过这些文件,以了解它们是否来自bash,但我需要找到一个确定性的方法,该方法可以在终端准备好开始输入时跟踪执行情况。 如果上述方法不可行,那么任何人都可以建议我在哪里可以看到正在运行的脚本。 以后的参考 这是我现在用来添加到我的路径的脚本: function add_to_path() { for path in ${2//:/ }; do if ! [[ "${!1}" =~ "${path%/}" ]]; then # ignore last / new_path="$path:${!1#:}" export "$1"="${new_path%:}" # remove trailing …
15 bash  profile 

4
有色的FIND输出?
是否可以从find命令获得彩色输出?也就是说,在找到的每个项目的路径中,目录为蓝色,可执行脚本为绿色,等等。我正在使用GNU findutils的 4.4.2版本。 编辑-为了明确起见,每个结果都将像这样突出显示: ./path/to/file.sh ^ ^ ^ | | L green blue (例如,如果执行find . -type f)。
15 bash  find  colors 

3
Bash引发错误,第8行:$ 1:未绑定变量
我正在尝试学习如何使用getopts,以便我可以使用具有经过解析的输入的脚本(尽管我认为getopts可能更好)。我正在尝试编写一个简单的脚本以返回分区使用率。问题是我的bash函数之一似乎不喜欢我$1在函数中引用为变量。我引用的原因$1是因为get_percent可以将函数传递给安装点作为显示而不是所有安装点的可选参数。 剧本 #!/usr/bin/bash set -e set -u set -o pipefail get_percent(){ if [ -n "$1" ] then df -h $1 | tail -n +2 | awk '{ print $1,"\t",$5 }' else df -h | tail -n +2 | awk '{ print $1,"\t",$5 }' fi } usage(){ echo "script usage: $(basename …




1
为什么需要插入12个字符来清除此bash命令行?
我打开一个xterm终端(80列x 24行),然后运行$ bash --norc --noprofile,然后$ tty获取终端的文件名:输出为/dev/pts/9。 从另一个终端运行: $ printf foo >/dev/pts/9 foo在第一个终端的shell命令行上打印。 如果我按C-u运行unix-line-discard(由给出的函数名称$ bind -P | grep -i c-u),foo则不会删除。 如果我插入11个空格并按C-u,空格将被删除,但不会被删除foo。 如果我插入12个空格并按C-u,空格也会被删除foo。 为什么在光标紧靠其后foo按下C-u时无法删除?为什么需要插入12个字符才能删除? 环境: $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 16.04.6 LTS Release: 16.04 Codename: xenial $ bash --version | head -n1 GNU bash, …

3
为什么不使用systemctl \ {restart,status} \ sshd \; 工作?
当通过echo传递时,上述命令的输出为: # echo systemctl\ {restart,status}\ sshd\; systemctl restart sshd; systemctl status sshd; 即使我将输出粘贴到终端,该命令仍然有效。但是当我尝试直接运行命令时,我得到: # systemctl\ {restart,status}\ sshd\; bash: systemctl restart sshd;: command not found... 我有两个问题。 这种替代和扩展方法到底叫什么?(以便我可以对其进行研究并了解更多信息以及如何正确使用它)。 我在这里做错了什么?为什么不起作用?

2
是EXIT,DEBUG,RETURN和ERR信号吗?
将trap在bash内置的语法如下 trap [-lp] [arg] [sigspec ...] ...每个sigspec都是信号名称或信号编号。信号名称不区分大小写,并且SIG前缀是可选的。 ... bash的说明书指出,sigspec可能是EXIT,DEBUG,RETURN,和ERR。它们是信号的名称吗? 为什么在下面给出的所有信号名称列表中都找不到它们,甚至SIG为它们添加前缀? 它们仅与bash shell相关,而与Linux OS相关吗?它们是bash shell信号,而不是Linux OS信号吗? $ trap -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT …
14 bash  signals 

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.