닫을 때까지 쉘 변수 데이터를 저장하는 방법은 무엇입니까?

닫을 때까지 쉘 변수 데이터를 저장하는 방법은 무엇입니까?

쉘 변수는 스크립트에 의해 생성됩니다. 터미널을 닫고 다른 스크립트를 시작하여 액세스한 후에도 유지해야 합니다.

(하드 드라이브에 있는) 파일에 쓰고 싶지 않습니다. 변수의 내용을 파일에 쓸 수 있다면 어떨까요(RAM에만 저장)?

데이터는 자주 변경되어야 하므로 하드 디스크에 너무 많은 I/O를 수행하고 싶지 않습니다.

답변1

터미널을 다시 시작하고 닫아도 살아남으려면 변수 값을 파일에 써야 합니다. 예를 들어 다음과 같이 쓸 수 있습니다.

echo "$VAR" >/path/to/file

이 방법으로 복원할 수 있습니다(예를 들어).

VAR="`cat /path/to/file`"

값이 변경될 때마다 파일에 저장해야 합니다.

답변2

한 환경에 설정된 변수는 상위 셸이나 다른(자식이 아닌) 셸에서 액세스할 수 없습니다. 다음이 작동합니다:

export my_variable="testing..."
bash
echo $my_variable

그러나 이 줄을 일부 파일(예 : 에서 실행하는 파일 ) $my_variable에 넣지 않으면 다른 터미널에서 액세스할 수 없습니다..bashrc.bashrc

fish또 다른 옵션은 쉘을 사용하는 것입니다 ...

fish -c "set -u my_variable 'testing...'"

더 읽어보실 수 있습니다여기

~에서fish 문서

-U 또는 --universal을 사용하면 지정된 쉘 변수에 범용 범위가 부여됩니다. 이 옵션이 제공되면 변수는 현재 컴퓨터에 있는 모든 현재 사용자의 Fish 인스턴스 간에 공유되며 쉘을 다시 시작해도 지속됩니다.

특정 요구 사항이 무엇인지는 확실하지 않지만 단지 호기심에서 나온 것입니다. 변수의 내용에 액세스하거나 읽을 수 있는 것이 걱정된다면 데이터를 파일에 쓰고 권한을 설정한 다음 --x------파일을 .bashrc.

답변3

1) PID를 에코/계산하기 위해 일부 C/셸 코드/프로그램을 가져오거나 생성합니다.

2) 파일 이름을 지정하고 "whatever"로 이름을 지정한 다음 /chmod +x "whatever"를 컴파일합니다.

삼)./allocate $("./whatever --name='$(plugin)' ")

그렇게하는 게 좋겠습니다.

[PS] 이를 위해서는 메모리에서 자체 참조가 필요합니다. 껍질이 깨질 수도 있어요

관련 정보