标签: bash

当我使用 sudo 运行命令时,环境变量不可见吗?

$cat test
export var=value

$source ./test

$cat print.sh
echo $var

$chmod +x print.sh

$echo $var
value

$sudo ./print.sh
Run Code Online (Sandbox Code Playgroud)

我什么也得不到。我期待看到价值。

到底是怎么回事?

linux unix script bash shell

2
推荐指数
1
解决办法
413
查看次数

在 bash 中混淆 cd 的问题

我正在为我的 .bashrc 文件添加几个别名,用于我经常使用的一些快捷方式,其中包括:

alias .="cd /;ls"
alias ..="cd ../;ls"
alias cd="cd $1;ls"
alias ls="clear;pwd;ls"
Run Code Online (Sandbox Code Playgroud)

有效的结果是,每当我导航到一个新目录时,窗口都会被清除并在顶部显示新目录及其内容。

除了 cd 别名之外,所有这些别名都有效。我尝试了多种尝试 cd 到新目录并在那里运行 ls 的组合,但似乎我只能列出目录的内容并返回到旧目录,或者成功 cd 到目录但使用生成的列表来自旧目录。

在 bash 中别名 cd (或任何带参数的命令)时,是否需要做一些特殊的事情?我觉得这是一个相对简单的任务,但我只是忽略了一些语法。

bash alias

2
推荐指数
1
解决办法
1380
查看次数

如何卷曲另一个命令的输出

我想通过 curl 输出 awk

./jspider.sh http://www.mypage.com | grep 'resource' | awk '{print $4}' | curl OUTPUT_FROM_AWK | grep myString
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?!

bash curl pipe

2
推荐指数
1
解决办法
7623
查看次数

如何从 postscript 文件(由 Opera 生成)确定页数?

我不知道后记语言。

我有一个用 bash 编写的双面打印仿真系统。它先打印奇数页,然后打印偶数页。它需要知道是否有奇数页数,以便它可以弹出最后一个没有相应偶数面的奇数页。它还使用页数进行报告。

我不知道如何正确执行此操作,因此我编写了查看结尾的代码,如有必要,还会查看 postscript 文件的开头,搜索“%%Pages:”,然后是页数。这几乎适用于除 Opera 浏览器打印的文件之外的所有内容。

任何人都可以提出另一种获取此信息的方法吗?

Postscript 文件往往相当大,有很多非人类可读的内容,所以我还没有花很多时间来介绍 Opera 中的那些。

TIA

当前代码位于:

http://sourceforge.net/projects/duplexpr/

function ps_page_ct
Run Code Online (Sandbox Code Playgroud)

opera bash printing postscript

2
推荐指数
2
解决办法
6302
查看次数

为什么 sort -k5nr 不是语法错误?

$ ls -l | sort -k 5 -n -r
$ ls -l | sort -k5nr
Run Code Online (Sandbox Code Playgroud)

我发现这两个命令生成相同的输出。
但我不明白为什么我可以5n?
为什么不是语法错误?

编辑:

$ ls -l | cut -d: -n -f 2    
$ ls -l | cut -d:nf2
cut: the delimiter must be a single character
Try `cut --help' for more information.
Run Code Online (Sandbox Code Playgroud)

为什么cut不表现得像sort

bash sorting

2
推荐指数
1
解决办法
332
查看次数

如何在 Bash 中撤销?

我不小心将整个主目录复制到我的一个子目录中,导致我超出了服务器上的磁盘配额。

或者有谁知道如何撤消一般的命令?

bash undo

2
推荐指数
1
解决办法
1万
查看次数

如果变量为真,则 bash 脚本 while 循环

我有以下 bash 脚本:

while [ $loop == "true" ]
   do
     //do stuff
   done
Run Code Online (Sandbox Code Playgroud)

但它在 [.

这也作为守护进程运行,当停止参数传递给脚本时......循环应该。我猜将 $loop 设置为 false 会自动结束循环。

linux bash

2
推荐指数
1
解决办法
3万
查看次数

通过 bash 为 OS X 中的应用程序设置别名的正确方法是什么?

在 my 中~/.bashrc,我有几个别名,例如:

alias emacs='/Applications/Aquamacs.app/Contents/MacOS/Aquamacs'
alias octave='/Applications/Octave.app/Contents/Resources/bin/octave'
alias wine='/Applications/Wine.app/Contents/Resources/bin/wine'
alias simion='wine "/Users/hpek/.wine/drive_c/Program Files/SIMION 8.0/simion.exe"'
alias inkscape='wine "/Users/hpek/.wine/drive_c/Program Files/Inkscape/inkscape.exe"'
Run Code Online (Sandbox Code Playgroud)

我不认为这是正确的做法。别名在 bash 脚本中不起作用,并且当通过brew或安装某些东西时apt-get,它不会创建这样的别名。

这样做的正确方法是什么?

bash alias bashrc

2
推荐指数
1
解决办法
1万
查看次数

创建别名 - 在 Bash 中?

如何创建-在 Bash 中命名的别名?以下均无效:

alias -='cd -'
alias \-='cd -'
alias '-'='cd -'
Run Code Online (Sandbox Code Playgroud)

有错误:

bash: alias: -=: invalid option
alias: usage: alias [-p] [name[=value] ... ]
Run Code Online (Sandbox Code Playgroud)

bash alias bash-alias

2
推荐指数
1
解决办法
402
查看次数

在 bash shell 中压缩大于 2GB 的文件

我一直在尝试将特定目录中的所有文件压缩为一个 zip 文件,然后将其传输到目标服务器。我使用过的命令就像

zip -j $Zipfilename *
Run Code Online (Sandbox Code Playgroud)

问题是有时所有文件的总大小达到 > 2GB 所以我收到警告

zip warning: name not matched
Run Code Online (Sandbox Code Playgroud)

并且文件没有被压缩。有没有其他方法可以做到这一点,而不会出现上述错误?请帮帮我!!

bash shell

2
推荐指数
1
解决办法
2万
查看次数

标签 统计

bash ×10

alias ×3

linux ×2

shell ×2

bash-alias ×1

bashrc ×1

curl ×1

opera ×1

pipe ×1

postscript ×1

printing ×1

script ×1

sorting ×1

undo ×1

unix ×1