如何声明函数局部变量?定期声明的变量被导出到全局范围。例子:
$ cat t.sh
function locals_test()
{
x="bar"
}
$ echo $x
$ locals_test
$ echo $x
bar
Run Code Online (Sandbox Code Playgroud) 我开始使用一些 Linux bash 脚本,我正在尝试获取用户名,以便我可以cd访问该用户的桌面:
cd /home/$(user I'm currently using)/Desktop
Run Code Online (Sandbox Code Playgroud)
根据我的理解,代码应该与上述类似。什么样的终端命令只会返回我正在使用的用户名?
我对我的 PATH 做了一些事情。
我试图添加一些新路径,现在没有一个命令像open ~/.bash_profile工作一样,echo $PATH只显示一个路径是/Application/Filename.
有没有办法来解决这个问题?这是我的 Mac OS X Lion。
我正在尝试在 bash 中增加我的历史记录的大小。我的 ~/.bash_profile 中有以下内容
# Control the command history
但是,当
export HISTFILESIZE=10000
export HISTSIZE=10000
export HISTCONTROL=ignoredups:erasedups
echo $HISTSIZE我总是得到50. 我错过了什么吗?我的系统管理员是否在更高的配置文件中放置了一些可以防止 HISTSIZE 被更改的命令?
在 中bash,如何在停止状态下启动作业,就像我正常启动它然后立即按下 Ctrl-Z 一样?
或者就好像我已经立即向进程发送了 SIGSTOP,但没有给进程在收到 SIGSTOP 之前执行的机会。
有谁知道如何将一个音频文件批量添加到另一个音频文件并为每个文件创建单独的输出。例如
Files:
Static.wav
Audio1.wav
Audio2.wav
Audio3.wav
Run Code Online (Sandbox Code Playgroud)
我需要一个可以执行以下操作的脚本:
Static.wav + Audio1.wav = Audio1out.wav
Static.wav + Audio2.wav = Audio2out.wav
Static.wav + Audio3.wav = Audio3out.wav
Static.wav + Audio*.wav = Audio*out.wav
(* = wildcard)
Run Code Online (Sandbox Code Playgroud)
谢谢!
我的 bashrc 中通常有以下简单别名:
alias g="grep --color=always --exclude-dir=\*.svn\*"
但现在我必须在只有 GNU grep 2.5 的系统上工作,因此没有--exclude-dir争论。
现在我需要这样的工作:
alias g="grep --color=always $1 $2 | grep -v .svn"
但当然,参数会附加到别名的末尾。$1 和 $2 在创建别名时解析,而不是在调用时解析,即使使用强引号也是如此。
我可以在不求助于额外的脚本或函数的情况下解决这个问题吗?
如果我在 bash 中有一个列表
L="11 22 11 33 22 44"
Run Code Online (Sandbox Code Playgroud)
有没有一种干净的方法可以到达 "11 22 33 44" ?
我刚刚在我的服务器上设置了 ElasticSearch,但我似乎无法远程连接到它(默认端口为 9200)。我可以通过localhost连接到它,但是当我指定IP地址时我无法远程连接到它。我认为这是因为端口已关闭(但我不确定)。因此,我想知道如何检查给定的端口是否打开,以及如何打开可能关闭的端口。
我是在 OSX 上使用 bash 的初学者,我以某种方式~在项目子文件夹中创建了一个目录。(它显示为目录,而不是符号链接。)
有没有一种安全的方法来摆脱这个~目录实例而不用 bash 扩展波浪号来擦除我的本地用户目录?
这是一个非常愚蠢的问题,但是弄清楚如何处理这个问题将是一个巨大的帮助。