Questions tagged «bash»

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

7
如何在Mac上从$ PATH删除条目
我试图安装Sencha Touch SDK工具2.0.0,但无法正常运行。它在$ PATH变量中创建了一个条目。后来我删除了sencha sdk tools文件夹,但没有意识到path变量仍然存在。 当我做的时候echo $PATH- /Applications/SenchaSDKTools-2.0.0-beta3:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin 我搜索了如何从$ PATH中删除变量,并按照以下步骤操作: 发出命令 PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin" 做了echo $PATH哪些显示/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin 发出命令 export PATH 关闭终端,然后重新打开。发出命令echo $PATH。这次我得到了 /Applications/SenchaSDKTools-2.0.0-beta3:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin 谁能告诉我我在做什么错?

4
Bash脚本错误:“功能:未找到”。为什么会出现?
我正在尝试bash script在我的Ubuntu计算机上运行,这给了我一个错误: 找不到功能 为了进行测试,我创建了以下脚本,该脚本可以在笔记本电脑上正常运行,但不能在台式机上正常运行。有什么想法吗?如果相关的话,我的笔记本电脑是Mac。 #!/bin/bash function sayIt { echo "hello world" } sayIt 这将在我的笔记本电脑上返回“ hello world”,但在我的台式机上将返回: run.sh:3:找不到函数hello world run.sh:5:语法错误:“}”意外
73 bash  shell  unix  ubuntu  terminal 

2
如何在Bash中打印函数定义?
我在中定义了一些不同的功能.bash_profile。我通常记得函数的名称,但是想在运行它之前先看一下代码。 在我的.bash_profile我有以下几点: gpm () { echo "git pull origin master" git pull origin master } 现在,我想在Bash中运行以下内容: $ <something> gpm 预期结果:不要执行功能,而只是打印出功能定义本身。
73 bash 


6
“ +”(一个或多个事件)不与“ sed”命令一起使用
我正在尝试通过消除不必要的空格,空行以及使括号与空格之间保持平衡来完善代码,因此: int a = 4; if ((a==4) || (b==5)) a++ ; 应更改为: int a = 4; if ( (a==4) || (b==5) ) a++ ; 它确实适用于方括号和空行。但是,它忘记将多个空间缩小为一个空间: int a = 4; if ( (a==4) || (b==5) ) a++ ; 这是我的脚本: #!/bin/bash # Script to refine code # filename=read.txt sed 's/((/( (/g' $filename …
73 macos  bash  sed 

7
递归查找所有比给定时间新的文件
给定一个time_t: ⚡ date -ur 1312603983 Sat 6 Aug 2011 04:13:03 UTC 我正在寻找一个bash单线列出所有较新的文件。比较应考虑时区。 就像是 find . --newer 1312603983 但是使用time_t而不是文件。
72 linux  bash 


30
Bash的隐藏功能
已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 Shell脚本通常用作胶水,用于自动化和简单的一次性任务。Bash shell /脚本语言最喜欢的“隐藏”功能有哪些? 每个答案一项功能 提供功能的示例和简短描述,而不仅仅是文档的链接 使用粗体标题作为第一行标记功能 也可以看看: C的隐藏功能 C#的隐藏功能 C ++的隐藏功能 Delphi的隐藏功能 Python的隐藏功能 Java的隐藏功能 JavaScript的隐藏功能 Ruby的隐藏功能 PHP的隐藏功能 Perl的隐藏功能 VB.Net的隐藏功能

18
Bash脚本有什么用了吗?[关闭]
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我刚刚完成第二年的大学CS学习,所以我缺乏对“现实世界”的了解。我第一年学习Java,然后继续学习Java,第二年学习了C和简单的Bash脚本。今年夏天,我正在尝试学习Perl(上帝帮助我)。我过去有点涉猎Python。 我的问题是,既然我们拥有易读,可写的脚本语言,例如Python,Ruby,Perl等,为什么有人编写Bash脚本?有什么我想念的吗?我知道我的linux机器有perl和python。它们不够普及吗?在Bash中确实有比在其他hll中更容易做的事情吗?

7
如何获得Linux中两个文件之间的差异(仅添加)
我有两个文件A1和A2(未排序)。A1是A2的早期版本,并且某些行已添加到A2。如何获得添加到A2的新行? 注意:我只想添加新行,而不想要A1中但在A2中删除的行。当我这样做时diff A1 A2,我得到了添加和删除,但我只想要添加。 请提出一种方法。
72 linux  bash  diff 

6
使用命令行工具计算文件中的行长
问题 如果我有一个长文件,其中包含许多行,这些行的长度各不相同,该如何计算每行长度的出现次数? 例: file.txt this is a sample file with several lines of varying length 跑步count_line_lengths file.txt会给: Length Occurences 1 1 2 2 4 3 5 1 6 2 7 2 有想法吗?

11
脚本中丢失的LINES和COLUMNS环境变量
考虑以下: me@mine:~$ cat a.sh #!/bin/bash echo "Lines: " $LINES echo "Columns: " $COLUMNS me@mine:~$ ./a.sh Lines: Columns: me@mine:~$ echo "Lines: " $LINES Lines: 52 me@mine:~$ echo "Columns: " $COLUMNS Columns: 157 me@mine:~$ 变量$LINES和$COLUMNS是外壳变量,而不是环境变量,因此不会导出到子进程中(但当我调整xterm窗口的大小时,即使从远程位置通过ssh登录,它们也会自动更新)。有没有一种方法可以让我的脚本知道当前的终端大小? 编辑:我需要这样做作为解决此问题的方法:每次使用vi(以及vim,less和类似的命令)都会弄乱屏幕。更改终端不是一种选择,因此,我正在寻找解决方法(确定向下滚动$LINES肯定不是完美的解决方案,但至少比丢失前一个屏幕更好)

8
如何减少前n列和后n列?
我怎样才能切断第一ñ最后ñ从制表符分隔文件列? 我试图这样做,以减少前n列。但我不知道将第一列和最后一列合并 cut -f 1-10 -d "<CTR>v <TAB>" filename
72 linux  bash  shell 

9
查找多个文件并在Linux中重命名它们
我有类似的文件a_dbg.txt, b_dbg.txt ...在Suse 10系统中。我想编写一个bash shell脚本,该脚本应通过从文件中删除“ _dbg”来重命名这些文件。 Google建议我使用rename命令。所以我rename _dbg.txt .txt *dbg*在CURRENT_FOLDER 我的实际CURRENT_FOLDER文件包含以下文件。 CURRENT_FOLDER/a_dbg.txt CURRENT_FOLDER/b_dbg.txt CURRENT_FOLDER/XX/c_dbg.txt CURRENT_FOLDER/YY/d_dbg.txt 执行rename命令后, CURRENT_FOLDER/a.txt CURRENT_FOLDER/b.txt CURRENT_FOLDER/XX/c_dbg.txt CURRENT_FOLDER/YY/d_dbg.txt 它不是递归执行的操作,如何使此命令重命名所有子目录中的文件。LikeXX和YY我将有很多子目录,这些子目录的名称不可预测。而且我CURRENT_FOLDER还将拥有一些其他文件。
72 linux  bash  shell  scripting  suse 

3
如何在bash上运行mysql命令?
以下代码在命令行上有效 mysql --user='myusername' --password='mypassword' --database='mydatabase' --execute='DROP DATABASE myusername; CREATE DATABASE mydatabase;' 但是,它在执行时不适用于bash文件 #!/bin/bash user=myusername password=mypassword database=mydatabase mysql --user='$user' --password='$password' --database='$database' --execute='DROP DATABASE $user; CREATE DATABASE $database;' 我收到以下错误: 错误1045(28000):对用户'$ user'@'localhost'的访问被拒绝(使用密码:是) 如何使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.