相关疑难解决方法(0)

将命令作为输入传递给另一个命令(su,ssh,sh等)

我有一个脚本,我需要启动一个命令,然后将一些额外的命令作为命令传递给该命令.我试过了

su
echo I should be root now:
who am I
exit
echo done.
Run Code Online (Sandbox Code Playgroud)

...但它不起作用:su成功,但命令提示符只是盯着我.如果键入exit的提示,echowho am i等开始执行!而且echo done.根本没有执行.

同样,我需要这个工作ssh:

ssh remotehost
# this should run under my account on remotehost
su
## this should run as root on remotehost
whoami
exit
## back
exit
# back
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

我正在寻找能够以一般方式解决这个问题的答案,这些答案并非特定于sussh特别是.目的是使这个问题成为这种特定模式的规范.

unix ssh bash shell sh

19
推荐指数
3
解决办法
6119
查看次数

cp和mv中的linux通配符用法

我正在编写一个脚本来处理20个文件.它们都位于不同的目录中.我有部分文件名.

  1. 在日志目录中,File1_Date_time.err更改为File1__Date_time_orig.err
  2. cd ../scripts/
  3. sh File.sh

File1
目录是/data/data1directory/Sample_File1/logs/File1_Data_time.err File2 目录是/data/data2directory/Sample_File2/logs/File2_Data_time.err
.....

我的脚本看起来像这样.(runrunrun.sh)

#!/bin/bash
INPUT=$1
mv /data/*/Sample_*/logs/*_Data_time.err /data/*/Sample_*/logs/*_Data_time_orig.err
cp /data/*/Sample_*/scripts/*.sh /data/*/Sample_*/scripts/*_orig.sh
sh /data/*/Sample_*/scripts/*_orig.sh
Run Code Online (Sandbox Code Playgroud)

在运行时,我试过了.
./runrunrun.sh File1
.runrunrun.sh File1
sh runrunrun.sh File1

mv:无法移动/data/data1directory/Sample_File1/logs/File1_Data_time.err /data/*/Sample_*/logs/*_Data_time_orig.err:没有这样的文件或目录cp也得到类似的反馈

我做得对吗?

谢谢!

linux shell mv cp

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

标签 统计

shell ×2

bash ×1

cp ×1

linux ×1

mv ×1

sh ×1

ssh ×1

unix ×1