Questions tagged «shell»

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

6
为什么$$返回与父进程相同的ID?
我对Bash有问题,我也不知道为什么。 在shell下,我输入: echo $$ ## print 2433 (echo $$) ## also print 2433 (./getpid) ## print 2602 “ getpid”是获取当前pid的C程序,例如: int main() { printf("%d", (int)getpid()); return 0; } 让我感到困惑的是: 我认为“(命令)”是一个子进程(对吗?),我认为其pid应该与其父pid不同,但是它们是相同的,为什么... 当我使用程序在括号之间显示pid时,显示的pid不同,对吗? 是“ $$”之类的宏吗? 你能帮助我吗?
159 bash  shell  pid  subshell 

10
如何在Shell脚本中获取目录中的文件列表?
我正在尝试使用Shell脚本获取目录的内容。 我的脚本是: for entry in `ls $search_dir`; do echo $entry done $search_dir相对路径在哪里。但是,$search_dir包含许多名称中带有空格的文件。在这种情况下,该脚本不会按预期运行。 我知道我可以使用for entry in *,但这仅适用于当前目录。 我知道我可以切换到该目录,使用for entry in *然后再改回,但是我的特殊情况使我无法这样做。 我有两个相对路径$search_dir和$work_dir,并且我必须同时处理这两个路径,读取它们并在其中创建/删除文件等。 那我现在该怎么办? PS:我用bash。

4
UNIX导出命令
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow 的主题。 8年前关闭。 改善这个问题 我试图了解export命令的使用。 我尝试使用man export,但是此命令没有手册。 任何人都可以帮助我了解exportUNIX中的用法吗?
158 bash  shell  unix 


9
检查传递的参数是Bash中的文件还是目录
我正在尝试在Ubuntu中编写一个非常简单的脚本,该脚本允许我传递文件名或目录,并且能够在文件时执行特定操作,而在目录时执行其他操作。我遇到的问题是名称中的目录名称(或可能还有文件)中包含空格或其他可转义字符。 这是下面的基本代码,并进行了一些测试。 #!/bin/bash PASSED=$1 if [ -d "${PASSED}" ] ; then echo "$PASSED is a directory"; else if [ -f "${PASSED}" ]; then echo "${PASSED} is a file"; else echo "${PASSED} is not valid"; exit 1 fi fi 这是输出: andy@server~ $ ./scripts/testmove.sh /home/andy/ /home/andy/ is a directory andy@server~ $ ./scripts/testmove.sh …
156 bash  shell 



4
单击选项卡时出现shell初始化问题,getcwd怎么了?
单击bash上的Tab后,将出现错误消息,这是怎么回事? symlink-hook: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory symlink-hook: error retrieving current directory: getcwd: cannot access parent directories: Success symlink-hook: error retrieving current directory: getcwd: cannot access parent directories: Success symlink-hook: error retrieving current directory: getcwd: cannot access parent directories: Success symlink-hook: …
153 linux  bash  shell  pwd  getcwd 

12
如何通过脚本创建crontab
我需要通过运行设置服务器的脚本来添加cron作业。我目前正在使用Ubuntu。我可以使用,crontab -e但这将打开一个编辑器来编辑当前的crontab。我想以编程方式执行此操作。 有可能这样做吗?
153 linux  shell  ubuntu  cron  crontab 


11
使用ls和grep列出具有某些扩展名的文件
我只想从当前目录中获取文件,仅输出.mp4 .mp3 .exe文件即可。所以我想我可以这样做: ls | grep \.mp4$ | grep \.mp3$ | grep \.exe$ 但是不会,因为第一个grep仅输出mp4,因此不会使用其他2个grep。 有任何想法吗?PS,在慢豹上运行此脚本。
152 bash  shell  macos  grep 

7
在Bash脚本中将字符串作为命令运行
我有一个Bash脚本,该脚本生成一个字符串以作为命令运行 脚本: #! /bin/bash matchdir="/home/joao/robocup/runner_workdir/matches/testmatch/" teamAComm="`pwd`/a.sh" teamBComm="`pwd`/b.sh" include="`pwd`/server_official.conf" serverbin='/usr/local/bin/rcssserver' cd $matchdir illcommando="$serverbin include='$include' server::team_l_start = '${teamAComm}' server::team_r_start = '${teamBComm}' CSVSaver::save='true' CSVSaver::filename = 'out.csv'" echo "running: $illcommando" # $illcommando > server-output.log 2> server-error.log $illcommando 这似乎无法将参数正确地提供给$serverbin。 脚本输出: running: /usr/local/bin/rcssserver include='/home/joao/robocup/runner_workdir/server_official.conf' server::team_l_start = '/home/joao/robocup/runner_workdir/a.sh' server::team_r_start = '/home/joao/robocup/runner_workdir/b.sh' CSVSaver::save='true' CSVSaver::filename = 'out.csv' rcssserver-14.0.1 Copyright …

8
如何从命令输出中获取第二列?
我的命令输出如下: 1540 "A B" 6 "C" 119 "D" 第一列始终是数字,后跟空格,然后是双引号字符串。 我的目的是仅获取第二列,例如: "A B" "C" "D" 我打算用它<some_command> | awk '{print $2}'来完成此任务。但是问题是,第二列中的某些值包含空格,这恰好是分隔awk字段的默认定界符。因此,输出混乱了: "A "C" "D" 如何干净地获得第二列的值(带双引号)?
152 shell  awk  ksh 


4
我如何在bash中的grep结果之前/之后获取行?
嗨,我是bash编程的新手。我想要一种在给定文本中搜索的方法。为此,我使用grep函数: grep -i "my_regex" 这样可行。但是给定data这样的: This is the test data This is the error data as follows . . . . . . . . . . . . . . . . . . . . . . Error data ends 找到单词error(using grep -i error data)后,我希望找到该单词后的10行error。所以我的输出应该是: . . . …
151 bash  shell  ubuntu 

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.