我有:
PATH=/bar:/foo
我想:
PATH=/foo:/bar
我不想要:
PATH=/foo:/bar:foo
所以我在想,假设默认路径是PATH=/bar
,我可以修改$path
($PATH
作为关联数组):
function prepend_to_path() {
unset $path[(r)$1]
path=($1 $path)
}
prepend_to_path /foo
但是抱怨:
prepend_to_path:unset:1: not enough arguments
已经很久了,我甚至不记得(r)
的用途,但没有它(unset $path[$1]
)我得到了:
prepend_to_path:1: bad math expression: operand expected at `/home/nerd...'
我做错了什么?
答案 0 :(得分:6)
答案 1 :(得分:2)
这也有效(并且在几个月后回到它时可以说更容易阅读):
<form [ngFormModel]="loginForm">
<p>
<input type="text" ngControl="usernameX" required placeholder="usernameX" /><br>
valid {{usernameX.valid}}
</p>
<p>
<input type="text" ngControl="passwordX" required placeholder="passwordX"/><br>
valid {{passwordX.valid}}
</p>
<my-form-input [placeholder]="'usernameXX'" [required]="true" [control]="usernameXX"></my-form-input><br>
valid {{usernameXX.valid}}
<p>form is valid: {{loginForm.valid}}</p>
</form>
@Component({
selector: 'my-form-input',
directives: [ FORM_DIRECTIVES ],
template: `
<div>
<p>
<input type="text" [attr.placeholder]="placeholder" [attr.required]="required" [attr.ngControl]="control"/><br>
valid {{control.valid}}
</p>
</div>
`
})
export class InputComponent implements OnInit {
@Input() placeholder: string;
@Input() required: boolean;
@Input() control: Control;
会自动对数组进行重复数据删除,只保留每个元素的第一次出现。
由于prepend_to_path () {
path[1,0]=$1
typeset -U path
}
相当于typeset -U
,你也可以export
一石二鸟。
编辑: typeset -gx
只需要应用于特定数组一次,因此可以在一个shell的启动中的某个地方执行此操作,并从上面的函数中删除该行。