Questions tagged «bash»

有关为Bash命令外壳编写的脚本的问题。对于具有错误/语法错误的shell脚本,请在此处发布之前,使用shellcheck程序(或在Web shellcheck服务器中的https://shellcheck.net)进行检查。有关Bash交互使用的问题更可能是Super User而不是Stack Overflow上的话题。

5
如何指定多行外壳变量?
我写了一个查询: function print_ui_hosts { local sql = "select ........." print_sql "$ sql" } 本地sql-一个非常长的字符串。查询未格式化。如何将字符串分成多行?
122 bash  shell 

5
运行bash脚本的docker入口点“权限被拒绝”
我正在尝试将我的node.js应用程序码头化。构建容器后,我希望它运行a git clone,然后启动节点服务器。因此,我将这些操作放在.sh脚本中。并在ENTRYPOINT中将脚本作为单个命令运行: FROM ubuntu:14.04 RUN apt-get update && apt-get install -y build-essential libssl-dev gcc curl npm git #install gcc 4.9 RUN apt-get install -y software-properties-common python-software-properties RUN add-apt-repository -y ppa:ubuntu-toolchain-r/test RUN apt-get update RUN apt-get install -y libstdc++-4.9-dev #install newst nodejs RUN curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash …
122 bash  shell  docker 

20
如何在bash循环列表中转义空格?
我有一个bash shell脚本,该脚本循环遍历某个目录的所有子目录(而不是文件)。问题在于某些目录名称包含空格。 这是我的测试目录的内容: $ls -F test Baltimore/ Cherry Hill/ Edison/ New York City/ Philadelphia/ cities.txt 以及遍历目录的代码: for f in `find test/* -type d`; do echo $f done 这是输出: 测试/巴尔的摩 测试/樱桃 爬坡道 测试/爱迪生 测试/新 约克 市 测试/费城 樱桃山和纽约市被视为2或3个单独的条目。 我尝试引用文件名,如下所示: for f in `find test/* -type d | sed -e 's/^/\"/' | …
121 bash  loops  whitespace 

8
在Linux脚本中将用户输入隐藏在终端上
我有如下的bash脚本: #!/bin/bash echo "Please enter your username"; read username; echo "Please enter your password"; read password; 我希望当用户在终端上键入密码时,不应显示该密码(或应显示诸如*******之类的内容)。我该如何实现?
121 linux  bash  scripting 

14
在shell中获取文件大小(以字节为单位)的可移植方式?
在Linux上,我使用stat --format="%s" FILE,但是我可以访问的Solaris没有stat命令。那我该怎么用呢? 我正在编写Bash脚本,不能真正在系统上安装任何新软件。 我已经考虑过使用: perl -e '@x=stat(shift);print $x[7]' FILE 甚至: ls -nl FILE | awk '{print $5}' 但是,这些看上去都不明智-运行Perl只是为了获取文件大小?还是运行2个命令来执行相同的操作?
121 linux  bash  shell  solaris 

5
Linux bash:多变量分配
Linux bash中确实存在类似于PHP中以下代码的内容: list($var1, $var2, $var3) = function_that_returns_a_three_element_array() ; 也就是说,您在一个句子中为3个不同的变量分配了一个对应的值。 假设我有bash函数myBashFuntion,该函数会写入标准输出字符串“ qwert asdfg zxcvb”。是否可以做类似的事情: (var1 var2 var3) = ( `myBashFuntion param1 param2` ) 等号左边的部分当然不是有效的语法。我只是想解释我的要求。 但是,有效的方法如下: array = ( `myBashFuntion param1 param2` ) echo ${array[0]} ${array[1]} ${array[2]} 但是索引数组的描述性不如普通变量名。 但是,我可以这样做: var1 = ${array[0]} ; var2 = ${array[1]} ; var3 = ${array[2]} 但是,我还是希望避免另外3条语句。 我只是在寻找一种快捷方式语法。可能吗?

5
如何在bash shell脚本中包含文件
有没有办法在外壳程序脚本中包含另一个外壳程序脚本,以便能够访问其功能? 就像在PHP中一样,您可以将include指令与其他PHP文件一起使用,以便仅通过调用函数名称即可运行其中包含的函数。
121 linux  bash  include 

5
使用bash / cut / split提取字符串的一部分
我有一个像这样的字符串: /var/cpanel/users/joebloggs:DNS9=domain.com 我需要joebloggs从该字符串中提取用户名()并将其存储在变量中。 字符串的格式将永远伴随着的例外,同joebloggs和domain.com,所以我想字符串可以分割使用两次cut? 第一个拆分将被拆分:,我们将第一部分存储在变量中以传递给第二个拆分函数。 第二个拆分将被/最后一个单词(joebloggs)拆分并存储到一个变量中 我知道如何使用数组和拆分在php中执行此操作,但我对bash有点迷失。
121 string  bash 


11
在EC2上:找不到sudo node命令,但是没有sudo的节点可以
我刚刚在新的EC2微型实例上安装了nodejs。 我通常安装它,./configure-> make-> sudo make install。 问题:当我在ec2-user下运行“ node”时,它运行正常。当我运行“ sudo节点”时,它失败。 我发现该节点位于: [ec2-user@XXXX ~]$ whereis node node: /usr/local/bin/node /usr/local/lib/node 当前路径是 [ec2-user@XXXX ~]$ echo $PATH /usr/local/bin:/bin:/usr/bin:/opt/aws/bin:/home/ec2-user/bin 但是,sudo路径是 [root@ip-10-112-222-32 ~]# echo $PATH /usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/aws/bin:/root/bin 然后我尝试编辑根PATH以包含到节点的路径,因此当我以root身份登录时,“ node”会运行-但是当我以ec2-user身份登录并运行“ sudo node”时,它仍然无法使用。 我需要安装npmproperfly。关于如何在运行“ sudo节点”时包括节点路径的任何想法?
120 node.js  bash  amazon-ec2  sudo 


5
Makefile中的多行bash命令
我有一种非常舒适的方法,可以通过几行bash命令来编译我的项目。但是现在我需要通过makefile对其进行编译。考虑到每个命令都在自己的shell中运行,我的问题是在makefile中运行彼此依赖的多行bash命令的最佳方法是什么? 例如,像这样: for i in `find` do all="$all $i" done gcc $all 另外,有人可以解释为什么即使单行命令bash -c 'a=3; echo $a > file'在终端中也能正常工作,而在makefile情况下却创建空文件吗?
120 bash  makefile 

4
如何在Bash脚本退出之前运行命令?
如果Bash脚本具有set -e,并且脚本中的命令返回错误,那么如何在脚本退出之前进行一些清理? 例如: #!/bin/bash set -e mkdir /tmp/foo # ... do stuff ... rm -r /tmp/foo /tmp/foo即使其中一个命令... do stuff ...失败,我如何确保将其删除?
119 bash 



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.