我有一个复杂的命令,我想制作一个shell/bash脚本.我可以$1轻松地写出来:
foo $1 args -o $1.ext
Run Code Online (Sandbox Code Playgroud)
我希望能够将多个输入名称传递给脚本.什么是正确的方法呢?
当然,我想处理其中包含空格的文件名.
在OS X中修改PATH等环境变量的正确方法是什么?
我在Google上看了一下,发现要编辑的三个不同文件:
我甚至没有这些文件,我很确定.tcshrc是错误的,因为OS X现在使用bash.这些变量,尤其是PATH,在哪里定义?
我正在运行OS X v10.5(Leopard).
我正在尝试将路径添加到我的路径中,因此它始终位于我的Linux路径中.我试过了:
export PATH=$PATH:/path/to/dir
Run Code Online (Sandbox Code Playgroud)
这是有效的,但是每次我退出终端并启动一个新的终端实例时,这个路径都会丢失,我需要再次运行export命令.
我怎么能这样做才能永久设置?
在shell脚本中,如何回显所有调用的shell命令并展开任何变量名?例如,给定以下行:
ls $DIRNAME
Run Code Online (Sandbox Code Playgroud)
我希望脚本运行该命令并显示以下内容
ls /full/path/to/some/dir
Run Code Online (Sandbox Code Playgroud)
目的是保存所有调用的shell命令及其参数的日志.也许有更好的方法来生成这样的日志?
我正在尝试解析从curl请求返回的JSON,如下所示:
curl 'http://twitter.com/users/username.json' |
sed -e 's/[{}]/''/g' |
awk -v k="text" '{n=split($0,a,","); for (i=1; i<=n; i++) print a[i]}'
Run Code Online (Sandbox Code Playgroud)
以上将JSON拆分为字段,例如:
% ...
"geo_enabled":false
"friends_count":245
"profile_text_color":"000000"
"status":"in_reply_to_screen_name":null
"source":"web"
"truncated":false
"text":"My status"
"favorited":false
% ...
Run Code Online (Sandbox Code Playgroud)
如何打印特定字段(用-v k=text?表示)?
我需要隐藏所有被拒绝的权限消息:
find . > files_and_folders
Run Code Online (Sandbox Code Playgroud)
我正在尝试这样的消息出现.我需要收集所有不会出现的文件夹和文件.
是否可以将权限级别定向到files_and_folders文件?
如何同时隐藏错误?
我正在编写一个调用另一个脚本的非常简单的脚本,我需要将参数从当前脚本传播到我正在执行的脚本.
例如,我的脚本名称是foo.sh和调用bar.sh
foo.sh:
bar $1 $2 $3 $4
Run Code Online (Sandbox Code Playgroud)
如何在不明确指定每个参数的情况下执行此操作?
如何在bash脚本中获取当前工作目录名称,甚至更好,只需一个终端命令.
pwd给出了当前工作目录的完整路径,例如/opt/local/bin但我只想要bin
在Bash中,似乎有几个变量具有特殊的,一致意义的值.例如,
./myprogram &; echo $!
Run Code Online (Sandbox Code Playgroud)
将返回后台进程的PID myprogram.我知道其他人,比如$?我认为是目前的TTY.还有其他人吗?
如果我想找到两个目录树之间的差异,我通常只执行:
diff -r dir1/ dir2/
Run Code Online (Sandbox Code Playgroud)
这准确地输出了相应文件之间的差异.我有兴趣只获取内容不同的相应文件列表.我假设这只是一个传递命令行选项的问题diff,但我在手册页上找不到任何内容.
有什么建议?