Linux命令set的某些用法

2021-07-23 19:42:08 字數 3015 閱讀 7127

在linux下可以"help set"檢視set命令的幫助:

[root@localhost ~]# help set

set: set [-abefhkmnptuvxbchp] [-o option-name] [--] [arg ...]

set or unset values of shell options and positional parameters.

設定或者復位shell選項的值和位置引數的值.

change the value of shell attributes and positional parameters, or

display the names and values of shell variables.

改變shell屬性的值和位置引數的值, 或者顯示shell變數的名字和值.

options:

(我刪去了一些選項)

-h remember the location of commands as they are looked up.

-h enable ! style history substitution. this flag is on

by default when the shell is interactive.

-v print shell input lines as they are read.

-x print commands and their arguments as they are executed.

-- assign any remaining arguments to the positional parameters.

if there are no remaining arguments, the positional parameters

are unset.

將任何剩餘的引數分配給位置引數, 如果沒有剩餘的引數, 就會將位置引數復位.

- assign any remaining arguments to the positional parameters.

the -x and -v options are turned off.

將任何剩餘的引數分配給位置引數. -x和-v選項會被關閉.

using + rather than - causes these flags to be turned off. the

flags can also be used upon invocation of the shell. the current

set of flags may be found in $-. the remaining n args are positional

parameters and are assigned, in order, to $1, $2, .. $n. if no

args are given, all shell variables are printed.

使用 + 而不是 - 會導致這些標誌被關閉. 這些標誌還可以在呼叫shell時被使用.

這些標誌的當前的設定可以在 $- 中被找到. 剩餘的n個引數是位置引數, 它們會被

按順序分配給 $1, $2, .. $n. 如果沒有給出引數, 所有的shell變數會被列印出來.

exit status:

returns success unless an invalid option is given.

返回success, 除非給出了乙個無效的引數.

[root@localhost ~]#

可以看到set命令不接受"--help"和"--version"引數,"-h"不是"--help"的簡寫,"-v"不是"--version"的簡寫。

set -- 1a 2b 3c 4d

set - 1a 2b 3c 4d

set 1a 2b 3c 4d

作用相同, 都是"assign any remaining arguments to the positional parameters.".

set --

復位"位置引數"。

set -

沒有任何作用(可能有"關閉-x和-v選項"的作用)。

下面是乙個例子:

[root@localhost ~]# set 1a 2b 3c 4d

[root@localhost ~]# for((i=1;i<=$#;i++)); do eval echo \$}; done

1a2b

3c4d

[root@localhost ~]# set 1x 2y 3z

[root@localhost ~]# for((i=1;i<=$#;i++)); do eval echo \$}; done

1x2y

3z[root@localhost ~]# set -

[root@localhost ~]# for((i=1;i<=$#;i++)); do eval echo \$}; done

1x2y

3z[root@localhost ~]# set --

[root@localhost ~]# for((i=1;i<=$#;i++)); do eval echo \$}; done

[root@localhost ~]#

另外,對於$-等的總結如下(copy的):

$0 這個程式的執行名字。

$n 這個程式的第n個引數值,n=1..9 。

$* 這個程式的所有引數,此選項引數可超過9個。

$# 這個程式的引數個數。

$$ 這個程式的pid(指令碼執行的當前程序id號)。

$! 執行上乙個背景指令的pid(後台執行的最後乙個程序的程序id號)。

$? 執行上乙個指令的返回值 (顯示最後命令的退出狀態。0表示沒有錯誤,其他任何值表明有錯誤)。

$- 顯示shell使用的當前選項,與set命令功能相同。

$@ 跟$*類似,但是可以當作陣列用。

完。

SET命令的用法

c documents and settings huojun xu set 顯示 設定或刪除 cmd.exe 環境變數。set variable string variable 指定環境變數名。string 指定要指派給變數的一系列字串。要顯示當前環境變數,鍵入不帶引數的 set。如果命令副檔名被...

bat的變數與命令set的用法

set 功能一覽 設定變數 格式 set 變數名 變數值 詳細 被設定的變數以 變數名 引用 取消變數 格式 set 變數名 詳細 取消後的變數若被引用 變數名 將為空 展示變數 格式 set 變數名 詳細 展示以變數名開頭的所有變數的值 列出所有可用的變數 格式 set 計算器 格式 set a ...

bat的變數與命令set的用法

set 功能一覽 設定變數 格式 set 變數名 變數值 詳細 被設定的變數以 變數名 引用 取消變數 格式 set 變數名 詳細 取消後的變數若被引用 變數名 將為空 展示變數 格式 set 變數名 詳細 展示以變數名開頭的所有變數的值 列出所有可用的變數 格式 set 計算器 格式 set a ...