标签: sh

运行“su -c”时环境会发生什么变化?

运行“su -c”时环境会发生什么变化?

我问的原因是这种神秘的行为:

bash$ which firefox
/usr/local/bin/firefox
bash$ su - user -c "echo $PATH"
bin:/usr/bin:/sbin:/usr/sbin:/opt/java/bin:/usr/local/bin:... 
bash$ su - user -c "firefox ..."
-bash: firefox: command not found
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

unix bash sh su

4
推荐指数
1
解决办法
7551
查看次数

GNU Parallel - 全局变量和函数

我有这个脚本:

GLOBAL_VAR="some global value"

function test
{
  echo $1
  echo ${GLOBAL_VAR}
}

export -f test  
parallel --jobs 5 --linebuffer test ::: "${files[@]}"
Run Code Online (Sandbox Code Playgroud)

我怎样才能$GLOBAL_VAR从并行可见?

linux sh gnu-parallel

4
推荐指数
1
解决办法
1776
查看次数

如何在管道中间使用“此处文档”?

我想使用heredoc作为模板生成一些内容:

passphrase=$(<passphrase) envsubst <<EOF
apiVersion: v1
kind: Secret
metadata:
  name: openshift-passphrase
stringData:
  passphrase: ${passphrase}
EOF
Run Code Online (Sandbox Code Playgroud)

并将其通过管道传输到oc create -f -.

如果我在 后面添加管道EOF,则不起作用。

如何通过管道将带有变量替换的定界文档传递给消耗它的东西?

linux bash command-line sh pipe

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

ssh 登录后如何运行 sudo -s

我的步骤:

  1. 在 myserver.com 上,我将“sudo -s”行粘贴到“mylogin”的主目录中的“~/.bashrc”文件中
  2. SSH 登录到 mylogin@myserver.com
  3. 登录后:

    root@myserver.com:~$

  4. 但是,按 cntrl+D 退出

    root@myserver.com:~$ exit

    root@myserver.com:~$ exit

    ...

    root@myserver.com:~$

    5、不要放弃。

为什么?

请告诉我正确的方法。

sudo bash shell sh

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

使用 xargs 将参数传递给带管道的子外壳

我想重命名一些文件。我想我可以使用 xargs 来做到这一点。

find ./ -name "upload.log-*" 
./upload.log-20180622.gz-20180624.gz-20180626.gz
./upload.log-20180624.gz-20180626.gz
./upload.log-20180620.gz-20180622.gz-20180624.gz-20180626.gz
./upload.log-20180621.gz-20180623.gz-20180625.gz-20180627.gz

find ./ -name "upload.log-*" -print | cut -d"-" -f-2
./upload.log-20180622.gz
./upload.log-20180624.gz
./upload.log-20180620.gz
./upload.log-20180621.gz
Run Code Online (Sandbox Code Playgroud)

我正在尝试以下操作,但似乎不起作用

find ./ -name "upload.log-*" | xargs -I '{}' sh -c "echo $1 $(echo $1 | cut -d"-" -f-2)" "{}"
Run Code Online (Sandbox Code Playgroud)

bash sh xargs pipe command-line-arguments

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

查找带有大写扩展名的文件名

如何在目录中递归地找到所有带有大写扩展名的文件。

我试过了 :

$ find -name "*.[A-Z][A-Z][A-Z]"
Run Code Online (Sandbox Code Playgroud)

似乎有效,但当然这不会检查最后一个点后超过 3 个字母的文件。

bash sh bash-scripting

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

如何运行.sh文件

我正在使用 Ubuntu,刚刚下载了 jmonkey 游戏引擎。一切似乎都在一个 .sh 文件中。我不太确定我应该如何运行它。

http://jmonkeyengine.com/

linux java sh

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

bash 说 '[[:' 未找到。这意味着什么?

在运行 bash 脚本时,我收到此错误:

 sh: [[: not found
Run Code Online (Sandbox Code Playgroud)

我怎样才能找到问题出在哪里?

bash sh

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

将新行附加到多个文件

我正在尝试使用以下命令将新行附加到多个文件:

find -name *.ovpn -exec sh echo "line to append" >> {} \;
Run Code Online (Sandbox Code Playgroud)

在执行此操作之前,我运行了一个不同的命令以确保它按我预期的方式工作:

find -name *.ovpn -exec sh echo "hello" \;
Run Code Online (Sandbox Code Playgroud)

但这只是为找到的每个文件打印出“sh: 0: Can't open echo”。

unix command-line sh find

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