Questions tagged «sh»

从版本7 Unix开始,sh是标准的Unix shell。POSIX具有基于Bourne Shell的标准化Shell行为,并且可移植Shell脚本应符合标准化语法。使用此标记可解决适用于Bourne / POSIX样式的壳的问题。对于具有错误的Shell脚本,请在此处发布之前在http://shellcheck.net中对其进行检查。

26
如何检查字符串是否在Bash中包含子字符串
我在Bash中有一个字符串: string="My string" 如何测试它是否包含另一个字符串? if [ $string ?? 'foo' ]; then echo "It's there!" fi ??我不知道的运算符在哪里?我是否使用echo和grep? if echo "$string" | grep 'foo'; then echo "It's there!" fi 看起来有点笨拙。
2564 string  bash  shell  substring  sh 

12
sh和bash之间的区别
在编写Shell程序时,我们经常使用/bin/sh和/bin/bash。我通常使用bash,但是我不知道它们之间有什么区别。 bash和之间的主要区别是sh什么? 在bash和中进行编程时,我们需要注意sh什么?
1303 bash  shell  unix  sh 

21
如何在Shell脚本中声明和使用布尔变量?
我试图使用以下语法在Shell脚本中声明一个布尔变量: variable=$false variable=$true 它是否正确?另外,如果我想更新该变量,我会使用相同的语法吗?最后,使用布尔变量作为表达式的以下语法正确吗? if [ $variable ] if [ !$variable ]
976 bash  shell  scripting  boolean  sh 

13
如何在执行外壳命令时回显它们
在shell脚本中,如何回显所有被调用的shell命令并扩展任何变量名? 例如,给出以下行: ls $DIRNAME 我希望脚本运行命令并显示以下内容 ls /full/path/to/some/dir 目的是保存所有调用的shell命令及其参数的日志。也许有更好的方法来生成这样的日志?
910 bash  shell  sh  posix  trace 

7
在bash脚本中set -e是什么意思?
我正在研究脚本从该脚本的Debian存档(.deb)文件解压缩之前执行的preinst文件的内容。 该脚本具有以下代码: #!/bin/bash set -e # Automatically added by dh_installinit if [ "$1" = install ]; then if [ -d /usr/share/MyApplicationName ]; then echo "MyApplicationName is just installed" return 1 fi rm -Rf $HOME/.config/nautilus-actions/nautilus-actions.conf rm -Rf $HOME/.local/share/file-manager/actions/* fi # End automatically added section 我的第一个查询是关于这一行的: set -e 我认为脚本的其余部分非常简单:它检查Debian / Ubuntu软件包管理器是否正在执行安装操作。如果是,它将检查我的应用程序是否刚刚安装在系统上。如果已安装,脚本将显示消息“ MyApplicationName已安装”并结束(return …
713 linux  bash  shell  sh 

8
如何在Shell脚本中执行逻辑或操作
我正在尝试做一个简单的条件检查,但这似乎不起作用。 如果$#等于0或大于,1则打个招呼。 我尝试了以下语法,但没有成功: if [ "$#" == 0 -o "$#" > 1 ] ; then echo "hello" fi if [ "$#" == 0 ] || [ "$#" > 1 ] ; then echo "hello" fi
571 bash  unix  if-statement  sh 


5
Bash变量分配中找不到命令错误
我有一个名为test.sh的脚本: #!/bin/bash STR = "Hello World" echo $STR 当我跑步时,sh test.sh我得到以下信息: test.sh: line 2: STR: command not found 我究竟做错了什么?我在网上看了非常基础/入门的bash脚本教程,这就是他们所说的声明变量的方式...因此,我不确定自己在做什么错。 我在Ubuntu Server 9.10上。是的,bash位于/bin/bash。

6
如何将文件读入Shell中的变量?
我想读取文件并将其保存在变量中,但是我需要保留变量,而不仅仅是打印文件。我怎样才能做到这一点?我已经编写了此脚本,但它并不是我所需要的: #!/bin/sh while read LINE do echo $LINE done <$1 echo 11111----------- echo $LINE 在我的脚本中,我可以将文件名作为参数,因此,例如,如果文件包含“ aaaa”,它将打印出以下内容: aaaa 11111----- 但这只是将文件打印到屏幕上,我想将其保存到变量中!是否有捷径可寻?
488 shell  unix  sh 

10
如何从Shell脚本获取密码而不回显
我有一个脚本,该脚本可以自动执行需要访问受密码保护的系统的过程。可通过接受用户密码作为参数的命令行程序访问该系统。 我想提示用户输入密码,将其分配给shell变量,然后使用该变量构造访问程序的命令行(当然,它将生成我将处理的流输出)。 我是Bourne / Bash的一名称职的Shell程序员,但是我不知道如何在不回显到终端的情况下接受用户输入(或者使用“ *”字符回显该输入)。 有人能帮忙吗?
424 bash  shell  scripting  sh 

22
如何通过Shell脚本执行mongo命令?
我想mongo在外壳脚本中执行命令,例如在脚本中执行命令test.sh: #!/bin/sh mongo myDbName db.mycollection.findOne() show collections 当我通过执行脚本时./test.sh,将建立与MongoDB的连接,但不会执行以下命令。 如何通过Shell脚本执行其他命令test.sh?
403 mongodb  bash  shell  sh 

2
使用IF语句时,如何将shell命令分成多行?
当命令是if语句的一部分时,如何在外壳中将命令拆分为多行? 这有效: if ! fab --fabfile=.deploy/fabfile.py --forward-agent --disable-known-hosts deploy:$target; then rc=1 fi 这不起作用: # does not work: if ! fab --fabfile=.deploy/fabfile.py \ --forward-agent \ --disable-known-hosts deploy:$target; then rc=1 fi 而不是执行整个命令,我得到: ./script.sh: line 73: --forward-agent: command not found 更重要的是,我对Bash的了解缺少什么,这将有助于我将来了解此问题和类似问题?
384 syntax  sh 

24
如何在Mac上获得GNU的readlink -f的行为?
在Linux上,该readlink实用程序接受-f附加链接后面的选项。这似乎不适用于Mac和可能基于BSD的系统。等价的是什么? 以下是一些调试信息: $ which readlink; readlink -f /usr/bin/readlink readlink: illegal option -f usage: readlink [-n] [file ...]
376 macos  freebsd  sh 

11
如何在sh的字符串中包含换行符?
这个 STR="Hello\nWorld" echo $STR 作为输出产生 Hello\nWorld 代替 Hello World 如何在字符串中包含换行符? 注意:此问题与echo无关。 我知道echo -e,但我正在寻找一种解决方案,该解决方案允许将字符串(包括换行符)作为参数传递给其他命令,这些命令没有类似的选项来将\ns 解释为换行符。
336 sh 

18
如何在Docker容器中运行Cron作业?
我正在尝试在调用shell脚本的docker容器中运行cronjob。 昨天我一直在网上搜索和堆栈溢出,但是我找不到真正可行的解决方案。 我怎样才能做到这一点? 编辑: 我已经创建了一个(带注释的)github存储库,上面有一个工作的docker cron容器,该容器以给定的间隔调用shell脚本。
275 docker  cron  containers  sh 

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.