Questions tagged «shell»

术语“外壳”是指通常与Unix和Linux操作系统相关联的一类基于文本的交互式命令解释器。对于有关shell脚本的问题,请使用更具体的标签,例如'bash','powershell'或'ksh'。没有特定标签的情况下,应该假定使用便携式(符合POSIX的)解决方案,尽管最好另外使用“ posix”或“ sh”。

11
如何使用sed从字符串中去除前X个字符?
我在一个小型工业包装盒中编写嵌入式Linux的Shell脚本。我有一个包含文本的变量pid: 1234,我想从行中删除前X个字符,因此仅保留1234。我需要“清理”更多变量,因此我需要删除X个第一个字符,${string:5}并且由于某些原因在我的系统中不起作用。 盒子里似乎唯一的东西是sed。 我正在尝试使以下各项起作用: result=$(echo "$pid" | sed 's/^.\{4\}//g') 有任何想法吗?
126 bash  shell  sed 

5
从Shell脚本中的被调用函数返回值
我想从外壳程序脚本中调用的函数返回值。也许我缺少语法。我尝试使用全局变量。但这也不起作用。代码是: lockdir="somedir" test() { retval="" if mkdir "$lockdir" then # Directory did not exist, but it was created successfully echo >&2 "successfully acquired lock: $lockdir" retval="true" else echo >&2 "cannot acquire lock, giving up on $lockdir" retval="false" fi return retval } retval=test() if [ "$retval" == "true" ] then echo …


13
Bash循环中的计数器增量不起作用
我有以下简单的脚本,在其中运行循环并希望维护COUNTER。我无法弄清楚为什么计数器没有更新。是由于创建了subshel​​l造成的吗?我该如何解决呢? #!/bin/bash WFY_PATH=/var/log/nginx WFY_FILE=error.log COUNTER=0 grep 'GET /log_' $WFY_PATH/$WFY_FILE | grep 'upstream timed out' | awk -F ', ' '{print $2,$4,$0}' | awk '{print "http://domain.com"$5"&ip="$2"&date="$7"&time="$8"&end=1"}' | awk -F '&end=1' '{print $1"&end=1"}' | ( while read WFY_URL do echo $WFY_URL #Some more action COUNTER=$((COUNTER+1)) done ) echo $COUNTER # output = …
125 linux  bash  shell  scripting  counter 

11
Unix-创建文件夹和文件的路径
我知道您可以mkdir创建目录和touch文件,但是无法一次性完成这两种操作吗? 即如果我想在文件夹other不存在时执行以下操作: cp /my/long/path/here/thing.txt /my/other/path/here/cpedthing.txt 错误: cp: cannot create regular file `/my/other/path/here/cpedthing.txt': No such file or directory 有没有人想出一个功能来解决这个问题?
125 linux  bash  shell  unix  scripting 

9
如何将制表符完成添加到Python Shell?
使用启动django应用程序时python manage.py shell,我得到一个InteractiveConsole shell-我可以使用制表符补全等。 Python 2.5.1 (r251:54863, Apr 15 2008, 22:57:26) [GCC 4.0.1 (Apple Inc. build 5465)] on darwin Type "help", "copyright", "credits" or "license" for more information. (InteractiveConsole) 当仅使用启动python解释器时python,它不提供制表符补全功能。 有人可以告诉我django在做什么,以便给我一个交互式控制台,或者我需要做些什么来启动没有django应用程序的交互式控制台?

8
如何获取外壳中字符串的最后一个字符?
我写了以下几行来获取字符串的最后一个字符: str=$1 i=$((${#str}-1)) echo ${str:$i:1} 适用于abcd/: $ bash last_ch.sh abcd/ / 它不适用于abcd*: $ bash last_ch.sh abcd* array.sh assign.sh date.sh dict.sh full_path.sh last_ch.sh 它列出了当前文件夹中的文件。
125 string  bash  shell 

3
如何在Ansible中执行多行Shell脚本
现在我正在使用ansible的shell脚本,如果它在多行上会更易读 - name: iterate user groups shell: groupmod -o -g {{ item['guid'] }} {{ item['username'] }} ....more stuff to do with_items: "{{ users }}" 只是不确定如何在Ansible Shell模块中允许多行脚本
125 shell  ansible 

6
IFS = $'\ n'的确切含义是什么?
如果是以下示例,该示例将IFS环境变量设置为换行字符... IFS=$'\n' 什么是美元符号的意思 完全相同? 在这种特定情况下该怎么办? 在哪里可以找到有关此特定用法的更多信息(Google不允许在搜索中使用特殊字符,否则我不知道该怎么找)? 我知道什么是IFS环境变量,什么是\n字符(换行符),但是为什么不只使用以下形式:( IFS="\n"不起作用)? 例如,如果我想遍历文件的每一行并想使用for循环,则可以这样做: for line in (< /path/to/file); do echo "Line: $line" done 但是,除非IFS将其设置为换行符,否则此方法将无法正常工作。为了使其正常工作,我必须这样做: OLDIFS=$IFS IFS=$'\n' for line in (< /path/to/file); do echo "Line: $line" done IFS=$OLDIFS 注意:我不需要另一种方法来做同样的事情,我已经知道很多其他事情了……我只是很好奇,$'\n'想知道是否有人可以给我一个解释。

10
如何逃避os.system()调用?
使用os.system()时,通常必须转义文件名和其他作为参数传递给命令的参数。我怎样才能做到这一点?最好是可以在多个操作系统/ shell上运行的东西,尤其是bash。 我目前正在执行以下操作,但是请确保为此必须有一个库函数,或者至少是一个更优雅/更强大/更有效的选项: def sh_escape(s): return s.replace("(","\\(").replace(")","\\)").replace(" ","\\ ") os.system("cat %s | grep something | sort > %s" % (sh_escape(in_filename), sh_escape(out_filename))) 编辑:我已经接受了使用引号的简单答案,不知道为什么我没有想到它;我猜是因为我来自Windows,“和”的行为略有不同。 关于安全性,我理解这个问题,但是在这种情况下,我对os.system()提供的一种快速简便的解决方案感兴趣,并且字符串的来源不是用户生成的,或者至少是由受信任的用户(我)。
123 python  shell  escaping 


7
使用Bash计数字符串中char的出现
我需要使用Bash计算字符串中char出现的次数。 在下面的示例中,当字符是(例如)t,它echoš出现的正确的号码t中var,但是当字符是逗号或分号,它打印出零: var = "text,text,text,text" num = `expr match $var [,]` echo "$num"
123 bash  shell  sh 

7
如何在macOS终端中批量重命名文件?
我有一个包含一系列文件的文件夹: prefix_1234_567.png prefix_abcd_efg.png 我想批量删除一个下划线和中间内容,以便输出为: prefix_567.png prefix_efg.png 相关但不完全解释: 如何使用终端批量重命名文件? 正则表达式以在OS X终端中批量重命名文件

6
如何使用jq从2个文件合并2个JSON对象?
我在外壳程序脚本中使用jq工具(jq-json-processor)来解析json。 我有2个json文件,想将它们合并为一个唯一的文件 这里是文件的内容: 文件1 { "value1": 200, "timestamp": 1382461861, "value": { "aaa": { "value1": "v1", "value2": "v2" }, "bbb": { "value1": "v1", "value2": "v2" }, "ccc": { "value1": "v1", "value2": "v2" } } } 文件2 { "status": 200, "timestamp": 1382461861, "value": { "aaa": { "value3": "v3", "value4": 4 }, "bbb": …
123 json  shell  command-line  jq 

11
bash中noop [:]的用例是什么?
我在bash(:)中搜索noop,但是找不到任何好的信息。该运算符的确切目的或用例是什么? 我尝试了以下操作,它对我来说是这样的: [mandy@root]$ a=11 [mandy@root]$ b=20 [mandy@root]$ c=30 [mandy@root]$ echo $a; : echo $b ; echo $c 10 30 请让我知道,该操作员的实时使用情况或在强制使用它的任何地方。
123 bash  shell  noop 

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.