小编PSk*_*cik的帖子

为什么有些 Linux shell 脚本使用 exec 来运行命令?

在 Linux bash 脚本中,例如:

exec /usr/lib/4.5/mono-service.exe ./AudioVideoRecorder.exe "$@"
Run Code Online (Sandbox Code Playgroud)

,为什么我必须exec执行命令而不是在没有exec零件的情况下运行它?

ubuntu shell-script

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

POSIX 是否保证任何标准实用程序的路径?

在 C 中,运行标准实用程序(例如 ps)而不是其他的最简单方法是什么?

例如,POSIX 是否保证存在标准ps/bin/ps或者我应该将 PATH 环境变量重置为我所获得的值confstr(_CS_PATH, pathbuf, n);,然后通过 PATH-search 运行该实用程序?

c path posix exec

25
推荐指数
1
解决办法
3198
查看次数

在行首grepping一个固定的字符串

grep "^$1"有点工作,但我如何转义"$1"grep 不会特别解释其中的任何字符?

或者,还有更好的方法?

编辑: 我不想搜索'^$1'但要搜索动态插入的固定字符串,该字符串仅在位于行首时才匹配。这就是我所说的$1.

grep

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

bash 脚本的 dd 样式参数

我想将参数传递给 dd 样式的 bash 脚本。基本上,我想要

./script a=1 b=43
Run Code Online (Sandbox Code Playgroud)

具有相同的效果

a=1 b=43 ./script
Run Code Online (Sandbox Code Playgroud)

我以为我可以通过以下方式实现这一目标:

for arg in "$@"; do
   eval "$arg";
done
Run Code Online (Sandbox Code Playgroud)

确保eval安全的好方法是什么,即"$arg"匹配静态(无代码执行)变量赋值?

或者有没有更好的方法来做到这一点?(我想保持这个简单)。

bash

19
推荐指数
4
解决办法
1277
查看次数

使用 tput 隐藏和取消隐藏光标

tput civis
Run Code Online (Sandbox Code Playgroud)

成功隐藏光标。

tput cvvis
Run Code Online (Sandbox Code Playgroud)

应该取消隐藏它,但它没有。

知道可能是什么问题吗?

terminal escape-characters tput

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

带有 IP 地址的 Hostaliases 文件

HOSTALIASES环境变量允许用户设置,而不必自己主机别名sudoedit /etc/hosts(更多详情,例如在http://blog.tremily.us/posts/HOSTALIASES/

但是,使用/etc/hostsI 可以将 IP 地址别名为名称,将名称别名为名称,而HOSTALIASES似乎只能使用名称到名称别名。

我试过:

cat > .hosts
work 10.10.0.1
g www.google.com
^D
export HOSTALIASES=$PWD/.hosts
Run Code Online (Sandbox Code Playgroud)

现在

curl g #works 
curl 10.10.0.1 #works
curl work #doesn't work
Run Code Online (Sandbox Code Playgroud)

我可以curl work在不需要编辑我没有写入权限的文件 ( /etc/hosts) 的情况下工作吗?

hosts

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

ESRCH 是什么意思?

出自:http : //pubs.opengroup.org/onlinepubs/9699919799/basedefs/errno.h.html

除了这个之外,为什么errno 代码以特定方式命名总是很清楚的。如何SRCH涉及到没有这样的进程

error-handling

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

匿名压缩包

Tar 将我的用户名编码到 tarball 中。我可以强迫它制作一个完全匿名的 tarball 吗?

--owner root仅替换我的用户名的某些实例。添加USER=root:USER=root tar c --owner root data无效。

简而言之,我希望:

echo hello world > data; tar c --owner root data | grep "$USER"
Run Code Online (Sandbox Code Playgroud)

匹配。

tar gnu-tar

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

POSIX shell 中函数和变量的单独命名空间

在 dash 中,函数和变量似乎位于不同的命名空间中:

fn(){
    fn="hello world"
}
fn; echo "The value is $fn!" #prints: The value is hello world!
fn; echo "The value is $fn!" #prints: The value is hello world!
#the fn variable doesn't conflict with the fn function
Run Code Online (Sandbox Code Playgroud)

这是特定于破折号的功能还是 POSIX 保证?

shell dash posix

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

从命令行挂载 LUKS

当 innautiluscaja我单击加密磁盘的图标并输入我的密码时,底层块设备被映射到/dev/mapper/luks-$UUID并安装在/media/$USER/$DISK,不需要 root 密码。有没有办法在没有 GUI 的情况下从命令行调用此过程,包括避免使用 sudo 并使挂载点能够从 GUI 再次卸载。

linux mount luks gvfs caja

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

标签 统计

posix ×2

bash ×1

c ×1

caja ×1

dash ×1

error-handling ×1

escape-characters ×1

exec ×1

gnu-tar ×1

grep ×1

gvfs ×1

hosts ×1

linux ×1

luks ×1

mount ×1

path ×1

shell ×1

shell-script ×1

tar ×1

terminal ×1

tput ×1

ubuntu ×1