小编use*_*780的帖子

$@ 除了第一个参数

我需要编写一个以这种方式运行的shell脚本:

./myscript arg1 arg2_1 arg2_2 arg2_3 ....... arg2_#
Run Code Online (Sandbox Code Playgroud)

脚本中有一个 for 循环

for i in $@
Run Code Online (Sandbox Code Playgroud)

但是,据我所知,$@ 包括 $1 到 $($#-1)。但是对于我的程序 $1 与 $2 $3 $4 等明显不同。我想从 $2 循环到最后......我该如何实现?谢谢:)

shell scripting bash

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

如果未定义变量,请避免运行脚本

我有一个脚本看起来像:

c=0
for f in */*; do
cp -v "$f" "/myhome/CE$(printf '%0*d' 2 $BATCHNUM)-new-stuctures_extracted/test-$(printf '%0*d' 5 $c)"
c=$((c=c+1))
done
Run Code Online (Sandbox Code Playgroud)

但是,用户必须提供一个变量调用 BATCHNUM,否则我需要强制此脚本停止运行。如果我可以强制调用此脚本的脚本也停止(甚至调用调用此脚本的 #2 脚本的 #1 脚本)会更好。

shell bash shell-script

43
推荐指数
4
解决办法
3万
查看次数

更改一个特定程序的默认目录而不更改其路径

我有两个g++程序位于/usr/local/bin//usr/bin/

我希望默认g++/usr/local/bin/. 但是,我不想更改我的 PATH 环境变量,因为对于其他程序。我更喜欢 in 中的版本而/usr/bin/不是/usr/local/bin/. 这可能吗?

为了明确我的观点:

我希望我的两个程序的默认值是:

g++/usr/local/bin/
python/usr/bin/

但是在/usr/local/bin/and 中/usr/bin/,两个程序都存在,我该怎么办?

linux path

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

检查特定文件夹的最大数量

在我的一个文件夹中,我有很多文件看起来像 enum-*

$ ls
PRIM         enum-00020   enum-00040   enum-00059   enum-00078   enum-00101   enum-00122   enum-00141   enum-00160   enum-00179
enum-00001   enum-00021   enum-00041   enum-00060   enum-00079   enum-00102   enum-00123   enum-00142   enum-00161   enum-00180
enum-00002   enum-00022   enum-00042   enum-00061   enum-00080   enum-00103   enum-00124   enum-00143   enum-00162   enum-00181
enum-00003   enum-00023   enum-00043   enum-00062   enum-00081   enum-00104   enum-00125   enum-00144   enum-00163   enum-00182
enum-00005   enum-00024   enum-00044   enum-00063   enum-00082   enum-00106   enum-00126   enum-00145   enum-00164   enum-00183
enum-00006   enum-00026   enum-00045   enum-00064   enum-00084   enum-00107   enum-00127   enum-00146   enum-00165   enum-00184
enum-00007   enum-00027   enum-00046   enum-00065   enum-00085   enum-00108   enum-00128   enum-00147   enum-00166   enum-00185
enum-00008   enum-00028   enum-00047   enum-00066   enum-00086   enum-00110 …
Run Code Online (Sandbox Code Playgroud)

command-line shell-script files

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

在后台运行命令并将输出打印到文件而不打印到屏幕

假设我想在后台运行一些东西并将它打印到一个文件中。但是,当我执行以下操作时,它仍然会打印到屏幕上......有谁知道为什么?我该怎么办?谢谢你。

./mc.x & 2>&1 > test.out  
wait
Run Code Online (Sandbox Code Playgroud)

io-redirection background-process

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

一致地更改文件名

我有一个文件夹名称如下所示的文件夹:

enum_1              enum_118  enum_140  enum_16   enum_178  enum_209  enum_227  enum_246  enum_27   enum_45  enum_63  enum_88
enum_10             enum_119  enum_141  enum_160  enum_179  enum_21   enum_228  enum_247  enum_28   enum_46  enum_64  enum_9
enum_100            enum_12   enum_142  enum_161  enum_18   enum_210  enum_229  enum_248  enum_29   enum_47  enum_65  enum_90
enum_102            enum_120  enum_143  enum_162  enum_180  enum_211  enum_23   enum_249  enum_3    enum_48  enum_66  enum_91
enum_103            enum_121  enum_144  enum_163  enum_181  enum_212  enum_230  enum_25   enum_30   enum_49  enum_67  enum_92
enum_104            enum_122  enum_145  enum_164  enum_182  enum_213  enum_231  enum_250  enum_31   enum_5   enum_68  enum_93
enum_105            enum_123  enum_146  enum_165  enum_183  enum_214  enum_232 …
Run Code Online (Sandbox Code Playgroud)

rename

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